计算机语言之基础数据类型

简介: 计算机语言之基础数据类型

一、类型

英文表达是Type或者Pattern指包含由各特殊的事物或现象抽出来的共通点的抽象概念。是逻辑演算中关于主目的不可兼的分类谱系之一。具有共同特征的事物所形成的种类。它和类别的差异是:类型强调共同性,类别强调差异性。广义的类型一般被定义为一种约束,也就是一种逻辑公式。类型被认为是一系列满足确定约束条件的元素,更抽象的方式可以把一个类型当作规定一个约束条件,如果我们规定的约束条件越好,相对应的被定义元素的集合就越精密,所以逻辑公式(logical formulas)就成为描述类型特征的最合适工具。对任何事物进行分类,在特定环境下,应该只有一种标准,也就是约束条件要清晰明朗且要少。


二、数据类型

在《什么是数据》我们大致明白了什么是数据,那么数据类型就是对数据分类,根据我们今天谈的主题,按照一个标准,就是是否计算机处理的数据,我们可以分为计算机处理的数据和非计算机处理的数据两种类型。


三、计算机里的基础数据类型

就是对计算机系统存储和处理的数据根据计算机的存储特性来进行分类,在计算机的世界里,数据类型就是在数据结构中的定义是一组性质相同的值的集合以及定义在这个值集合上的一组操作的总称。。计算机里的数据有哪些特性呢:首先是数据是用二进制保存,其次是有长度限制,然后才是加上语义上的信息,那么根据这些特征来进行分类,计算机里的基础数据类型包括:字节、字、双字、布尔值、数值、字符等。


3.1、纯二进制数据类型

字节(byte)

对就是用二进制的的单位Byte作为了数据类型的名称,表示一个长度为8bit的二进制数据,范围0x00—0xFF,具体语义要根据使用场景来确定。

字(word)

也是用二进制的的单位word作为了数据类型的名称,表示一个长度为16bit的二进制数据,范围0x0000—0xFFFF,具体语义要根据使用场景来确定。

双字(dword)

也是用二进制的的单位dword作为了数据类型的名称,表示一个长度为32bit的二进制数据,范围0x00000000—0xFFFFFFFF,具体语义要根据使用场景来确定。

布尔值(bool)

占用8bit,表达逻辑上的真和假,取值范围(0,1)

这些数据类型通常没有明确的语义,需要在具体的使用场景才有具体的语义,比如我们在Windows系统里编程时,经常用到的一些标识数据,每一个位代表的意思不一样。


3.2、编码数据类型

除了上面的纯二进制数据类型外,还有一些基础数据类型是需要人为编码后,才能被计算机识别和处理的数据,比如数值和字符文本。这类数据在任何情况下它们的语义都是清晰明了唯一的。


3.2.1、数值型

对应了实数里的所有的类型:整数,有理数、无理数。在计算机里,数值根据计算机系统特征分了很多类型。整数包括了:整形、长整形、短整形,实数包括了:单精度浮点型和双精度浮点型。


整数:不包含小数部分的数值型数据,用字母I表示。整型数据只用来表示整数,以二进制形式存储。


整形

长度是32bit,有符号的表示范围-2147483648~2147483648,无符号表示的范围0~4294967295

长整形

跟整形一样,只是长度是整形2倍,是64bit ,表示的整数范围大很多,有符号的表示范围-9223372036854775808 ~9223372036854775807,无符号表示的范围0~1844674407370955161

短整形

跟整形一样,只是长度是整形0.5倍,是16bit ,表示的整数范围小很多,有符号的表示范围-3276832767,无符号表示的范围065535

实数:在计算机系统的发展过程中,曾经提出过多种方法表示实数,但是到目前为止使用最广泛的是浮点表示法。相对于定点数而言,浮点数利用指数使小数点的位置可以根据需要而上下浮动,从而可以灵活地表达更大范围的实数。


单精度浮点数

单精度浮点型专指占用32位存储空间的单精度(single-precision )值。单精度在一些处理器上比双精度更快而且只占用双精度一半的空间,但是当值很大或很小的时候,它将变得不精确。当你需要小数部分并且对精度的要求不高时,单精度浮点型的变量是有用的。其数值范围为-3.4E38~3.4E38

双精度浮点数

占用64位的存储空间。在一些现代的被优化用来进行高速数学计算的处理器上双精度型实际上比单精度的快。所有超出人类经验的数学函数,如sin( ),cos( ) ,tan()和sqrt( )均返回双精度的值。当你需要保持多次反复迭代的计算的精确性时,或在操作值很大的数字时,双精度型是最好的选择。其可以表示的数字的绝对值范围大约是:1.7E-308~1.7E+308

3.2.2、字符(char)

字符指类字形单位或符号,包括字母、数字、运算符号、标点符号和其他符号,以及一些功能性符号。字符是电子计算机或无线电通信中字母、数字、符号的统称,其是数据结构中最小的数据存取单位,是计算机中经常用到的二进制编码形式,也是计算机中最常用到的信息形式。不同国家、民族和地区都有自己的符号系统,计算机系统要想表达这些符号,就必须对这些符号进行二进制的编码。根据符号编码的不同,字符的长度就不同。计算机常用的就是ASCII码,主要用来表示英文世界的常见符号,一个字符占用8bit长度,而中文字符常用编码是GBK,一个中文字符占用16bit。


数据类型分为两种:

基本数据类型:

整数:byte(一个字节)、short(两个字节)、int(四个字节)、long(八个字节)

浮点数:float(单精度,四个字节)、double(双精度、八个字节)

字符:char(两个字节)

布尔:boolean(一个字节,true、false)

引用数据类型:类、接口、数据。


总之,在计算机系统里,通过对这些基本数据的使用、组合可以表达对整个宇宙的描述和模拟,构成了现在丰富的计算机世界。对程序员来讲,要善于使用不同的编程语言和数据结构来使用和组合这些基础数据类型,完成我们构建世界的使命。


相关文章
|
算法框架/工具
成功解决INFO: pip is looking at multiple versions of keras-preprocessing to determine which version is c
成功解决INFO: pip is looking at multiple versions of keras-preprocessing to determine which version is c
|
10月前
|
JavaScript Linux 内存技术
Debian 11系统下Node.js版本更新方法
Debian 11更新Node.js主要就是这三种方式,无论你是初涉其中的新手还是找寻挑战的专家,总有一种方式能满足你的需求。现在,你已经是这个
1294 80
|
存储 Java 数据库
如何处理线程池关闭时未完成的任务?
总之,处理线程池关闭时未完成的任务需要综合考虑多种因素,并根据实际情况选择合适的处理方式。通过合理的处理,可以最大程度地减少任务丢失和数据不一致等问题,确保系统的稳定运行和业务的顺利开展。
689 64
|
消息中间件 监控 Java
利用Java构建高效的消息推送系统
利用Java构建高效的消息推送系统
|
JavaScript 前端开发 API
vue3 v-md-editor markdown编辑器(VMdEditor)和预览组件(VMdPreview )的使用
本文介绍了如何在Vue 3项目中使用v-md-editor组件库来创建markdown编辑器和预览组件。文章提供了安装步骤、如何在main.js中进行全局配置、以及如何在页面中使用VMdEditor和VMdPreview组件的示例代码。此外,还提供了一个完整示例的链接,包括编辑器和预览组件的使用效果和代码。
vue3 v-md-editor markdown编辑器(VMdEditor)和预览组件(VMdPreview )的使用
|
中间件 FESCAR Apache
你好!Apache Seata(incubating)
你好!Apache Seata(incubating)
1343 96
|
运维 安全 Linux
深入理解 Linux 文件系统的权限管理
【5月更文挑战第30天】 在 Linux 操作系统中,文件系统权限管理是维护系统安全与数据完整性的基石。本文旨在深入探讨 Linux 权限模型的核心概念、实现机制及其对系统安全性的影响。通过对用户身份、文件权限和访问控制列表(ACL)等关键元素的剖析,揭示权限管理在实际操作中的应用细节。文章还将讨论如何有效配置权限来优化系统性能和提升安全性,以及解决常见的权限问题的策略。
|
存储 编解码 自然语言处理
一文读懂字符编码
本文计算机的各种字符编码进行了介绍,
|
消息中间件 监控 负载均衡
rabbitmq与kafka的区别
RabbitMQ提供了强大的可靠性保障,通过持久化机制和消息确认机制来确保消息的可靠传输和消费。而Kafka也提供了类似的可靠性保障,但其持久化机制和消息确认机制的实现方式与RabbitMQ有所不同。
1326 1
|
消息中间件 机器学习/深度学习 分布式计算
什么是实时流式计算?
实时流式计算,也就是RealTime,Streaming,Analyse,在不同的领域有不同的定义,这里我们说的是大数据领域的实时流式计算。 实时流式计算,或者是实时计算,流式计算,在大数据领域都是差不多的概念。那么,到底什么是实时流式计算呢?
1434 58
什么是实时流式计算?