# 解读《深入理解计算机系统(CSAPP)》第2章 信息的表示和处理

本章研究计算机上如何表示数字和其他形式数据的基本属性,计算机对这些数据执行操作的属性。

计算机将信息编码为位(比特),通常组织成字节序列。计算机具有不同放入编码方式用来表示整数、实数和字符。不同计算机模型在编码数字和多字节数据中的字节顺序是使用不同方式(约定)。下图是整数加法只有中间正常,如果是无符号

img

大多机器对整数使用补码编码,对浮点数使用IEEE标准754编码。

img

在相同长度的无符号和有符号整数之间进行强制转换时,C语言遵循底层的位模式不变。

由于编码的长度有限,与传统整数和实数运算相比,计算机运算具有不同的属性。当超出表示范围时,有效长度能够引起数值溢出,当浮点数非常接近0.0,从而转换成0时也会下溢。C语言由于溢出x*x能够得到负数,但是也遵循位运算和算术运算,例如~x-1 等价于 -x

浮点数表示通过将数字编码的数值为x*2^y的形式来近似地表示实数。