2 信息的表示和处理
2.1 信息存储
大多数计算机将8位作为一字节,且字节是内存可以寻址的最小单位。内存中的每个字节都由唯一的一个数字来表示,作为该字节的地址。
-
十六进制表示法(hex)
在计算机中,数值都是用二进制来表示,但在有的时候,需要将二进制的数换成一种利于程序员理解的表达方式。转换成十进制虽利于程序员理解,但二进制与十进制之间的转换比较麻烦。为此通行的办法是将二进制数转换成十六进制。四位的二进制对应一位的十六进制,若二进制的左侧不足四位,则用零填充。具体方法可谷歌,此处不赘述。 -
字数据大小
字长是CPU里寄存器最大的存储位数,也是CPU与内存之间的数据传送单位。字长决定的最重要系统参数就是内存地址空间的大小。也就是说,对于字长为w的机器,其内存的寻址范围为0~2w-1,程序最多能访问2w个字节。
大多数64位机器也可以运行32位机器编译的程序,这是一种向后兼容,但64位程序只能在64位机器上运行。还有,“32位程序”和“64位程序”的区别在于程序是如何编译的,而不是其机器的类型。
计算机和编译器都支持多种不同编码方式的数字格式,比如不同长度的整数和浮点数。
C语言支持的数据类型如图所示:
捕获.PNG
需要注意的是,数据的长度是受程序如何编译影响的。大部分数据都是有符号数值,除非前面有unsigned修饰。但char类型是一个例外,尽管大多数机器和编译器都将char视为一个有符号数,但C标准并不保证这一点,所以程序员应该用signed来确保它是一个有符号数。不过多数情况下,程序对char类型是有符号还是无符号并不敏感。
今晚就写这么多,明晚继续。
网友评论