CSAPP-chap2-信息的表示和处理

Posted by raftale on December 21, 2024

信息的表示和处理

本章将讨论「非负数的二进制编码」和「标准字符编码」,以及「负数表示」和「实数近似值的编码」。

三种最重要的数字表示:

类型 描述 表示范围 示例
无符号编码 基于传统的二进制表示法,表示大于等于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位二进制数。

大多数计算机使用字节作为可寻址的内存单位,而不是位。机器级的程序将内存视为一个非常大的字节数组,称为虚拟内存

内存的每个字节都由一个唯一的数字标识,称为他的地址,所有可能的地址的集合就是虚拟地址空间

每个程序对象可以简单地视为一个字节块,而程序本身就是一个字节序列。

十六进制表示法