我是靠谱客的博主 哭泣流沙,最近开发中收集的这篇文章主要介绍计算机中存储的数据类型数据类型,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

数据类型

计算机中存储的数据分为数值型数据和非数值型的数据

1 数值类型

1.1 二进制

计算机中的数据都是以二进制的进行的,这是因为计算机只能识别0和1,二进制主要是为了计算机识别,一长串的01串很反人类,很难准确的计算出数值,很不符合人们日常对数据的认识;
前导符: 0b
进位规则: 逢二进一,每一位上的数字只能是0或1;
如: 0b1001 0110
二进制的优势:

1)二进制只有两种状态,使用两个稳定状态的物理器件就能表示二进制的每一位,创造成本低,比如使用高低电平分别表示0和1;
2)二进制位的哦0和1正好与逻辑值中的“真 ”和“假”对应,方便计算机实现逻辑运算和程序中的逻辑判断;
3)二进制的编码和运算规则简单,通过逻辑门电路能方便的实现算术运算;

1.2 十进制

十进制是日常生活中最常用的,我们日常在数学上常使用的就是十进制;
没有前导符
进位规则: 每位上的数值范围位0-9,每个数位满十就向高位进位,即逢十进一;
如: 871029 ;

1.3 八进制

个人觉得八进制使用的也不多;
前导符: 0
进位规则: 逢八进一,每个数位上的数值范围0-7;
如: 0234, 0567;

1.4 十六进制

4位二进制数码与1位十六进制数码相对应,在单片机的编程中常用一位十六进制数控制4个引脚,使用的比较频繁;
前导符: 0x
进位规则: 逢16进1,每一位上的数字范围 0~9 A:10 B:11 C:12 D:13 E:14 F:15
如: 0xAABB 0X56EF

1.5 进制转换

1.5.1 二进制转八进制和十六进制

对于二进制混合数(既包含整数部分,也包含小数部分),在转换时以小数点为界。整数部分从小数点开始往左数,将一串二进制数分为3位(八进制)一组和4位(十六进制)一组,数的最左边不满一组的前加0补齐;小数部分是从小数点往右数,将一串二进制数分为3位(八进制)一组和4位(十六进制)一组,数的右边根据需要右补0;最终使位数为3或者4的整数倍,然后取对应的八进制或者十六进制数取代。

0b1011010–>八进制
0b001011010 -->0132

0b1011010010–>十六进制
0b001011010010–>0x2D2

1.5.2 八进制和十六进制转二进制

将上述过程反着来

1位八进制数表示3位二进制数
0456 -->0b100101110

1位十六进制数表示4位二进制数
0X56EF -->0b0101011011101111

1.5.3 任意进制转十进制

按权展开相加法: 将任意进制数的各位数码与它们的权值相乘,再把乘积结果相加;

1.5.4 十进制转任意进制

除基取余法(整数部分转换): 整数部分除基取余,最先取得的余数位数的最低位,最后取得的余数为最高位(即除基取余,先余为低,后余为高),商为0时结束;

乘基取整法(小数部分转换): 小数部分乘基取整,最先取得的整数为数的最高位,最后取得的整数为数的最低位(即乘基取整,先整为高,后整为低),乘积为1.0(或者满足精度要求时)结束;

*** 在计算机中,小数和整数不一样,整数可以连续表示,但小数是离散的,所以并不是每个十进制小数都可以用二进制表示,例如0.3,无论经过多少次乘二取整转换都无法得到精确的结果。但是任意二进制小数都可以用十进制表示。 ***

2 非数值类型

计算机内部只能识别和处理二进制代码,但是有些情况下我又需要处理非数值型数据, "www.baidu.com"网址、人名等等;所以就需要专门用来处理非数值型数据

2.1 字符编码ASCII码

国际上常采用的一种字符系统是7位二进制编码的ASCII码(每个字节的最高位保持为0,可以用于传输时的奇偶校验)
在Linux系统中可以使用命令 man ascii 可以查看ascii码表。

‘a’ ‘8’ “hqyj” 这些都是非数值型数据

每一个字符都会对应一个整数,这个整数就是该字符的码值

常见的字符对应的ascii码

'A'
65
'a'
97
'0'
48
'n'	10
''	0

转义字符: 任何一个字符都可以用一个 加上一个整数(八进制的)来表示,C语言中还定义了一些 +字符 来表示那些 无法显示的字符如 ‘n’ ‘a’ ‘t’ 等。这字符称为转义字符,因为这些字符已经不是自身的含义了。

2.2 汉字的表示和编码

汉字的编码包括汉字的输入编码、汉字内码、汉字字形码三种,它们是计算机中用于输入、内部处理和输出三种用途的编码;
区位码是国家标准局实施的标准,用两个字节表示一个汉字,将汉字和图形符号排列在一个94行94列的二维数码表中。区位码是4位十进制数,前两位表示区码,后两位表示位码,所以称为区位码。

最后

以上就是哭泣流沙为你收集整理的计算机中存储的数据类型数据类型的全部内容,希望文章能够帮你解决计算机中存储的数据类型数据类型所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部