信息的表示和处理
本章将讨论「非负数的二进制编码」和「标准字符编码」,以及「负数表示」和「实数近似值的编码」。
三种最重要的数字表示:
类型 | 描述 | 表示范围 | 示例 |
---|---|---|---|
无符号编码 | 基于传统的二进制表示法,表示大于等于0的数字。 | 0 到 2^n - 1 | 0, 1, 2, … |
补码编码 | 是表示有符号整数的最常见方式,包括正数和负数。 | -2^(n-1) 到 2^(n-1) - 1 | -5, 0, 5 |
浮点数编码 | 表示实数(包含整数和小数)的科学记数法的以2为基数的版本。计算机中,任何实数都可以用x=m*2^e 来表示,其中m 是尾数,e 是指数,例如二进制表示-101.11,可以表示为-1.0111*2^2 。 |
包括小数(范围更大) | 3.14, -0.01 |
计算机的表示法是用有限数量的位来对一个数字编码,当结果太大以至于不能表示的时候,某些运算就会溢出(overflow)。
计算机的编码是非常重要的,因为它直接影响到程序的正确性和性能。
信息存储
位(bit):二进制0或1.
字节(byte):8位二进制数。
大多数计算机使用字节作为可寻址的内存单位,而不是位。机器级的程序将内存视为一个非常大的字节数组,称为虚拟内存。
内存的每个字节都由一个唯一的数字标识,称为他的地址,所有可能的地址的集合就是虚拟地址空间。
每个程序对象可以简单地视为一个字节块,而程序本身就是一个字节序列。