第二章研究在计算机上如何表示数字和其他形式数据的结伴属性,以及计算机对这些数据执行操作的属性。 要求我们深入研究数学语言,编写数学公式和方程式,以及展示重要属性的推导.
第二章 信息的表示和处理
三种重要的数字表示
- 无符号(unsigned)编码:基于传统的二进制表示法,表示大于或者等于零的数字。
- 补码(two’s-complement)编码:表示有符号整数。
- 浮点数(floating-point)编码:表示实数的科学计数法的以2为基数的版本。
溢出(overflow):运算结果太大以致不能表示时发生溢出(计算机的表示法是用有限数量的位来对一个数字编码)。
信息存储
字节byte(块)一般为8位。byte为最小的可寻址的内存单位,而不是访问内存中单独的位。
- 虚拟内存(virtual memory):机器级程序所视作的内存(一个非常 大的字节数组)。
- 地址(address):内存放入每个字节的唯一数字标识。
- 虚拟地址空间(virtual address space):所有可能地址的集合。
虚拟地址空间只是一个展现给机器级程序的概念性印象。
程序对象(program object):程序数据、指令、控制信息。每个程序对象可以简答地十位一个字节块,而程序本身就是一个字节序列。
十六进制(hexadecimal)。
字数据大小
字长(wordsize)指明指针数据的标称大小(normal size)。
对一个字长为w位的机器而言,虚拟地址的范围为0 -(2^w-1),程序最多访问2^w字节。
32位字长虚拟地址空间为4GB(约为4×10^9字节),64位字长虚拟地址空间为16EB(约为1.84×10^19字节)。
“32位程序”与“64位程序”的区别在于该程序时如何编译的,而不是其运行的机器类型。
寻址和字节顺序
小端法(little endian):在内存中按照从最低有效字节到最高有效字节的顺序存储对象。大端法(big endian):最高有效字节在最前面的方式。
eg.变量x 0x01234567
可以通过执行命令 man ascii来得到一张ASCII字符码的表。