机器数的表示
操作数的分类
计算中,操作数分为两类:定点数和浮点数。定点数就是小数点固定的数,浮点数就是小数点的位置可以变化的数;
生活中对数的操作有加减乘除等等操作,为了简化设计,计算机中采用了新的数字编码方式,把加法和减法统一成了加法,这样硬件设计上只要设计一个加法器即可同时支持加和减。
计算机使用二进制表示数字,但不同于人工示数方式,计算机常用的示数方式有 4 种:原码、反码、补码、移码。
- 原码:最高位是符号,其余位表示数字的绝对值;
- 反码:正数的反码与原码相同,负数的反码为其原码的按位取反(符号位不变);
- 补码:正数的补码与原码相同,负数的补码为其反码末位加一;
- 移码:补码的符号位取反;
计算机中一般以补码的形式存储操作数,因为计算机分配给每个数字的空间是有限的,每个数字都有长度限制,设这个长度为 ,也就是说每次计算机每次对数字的操作都带有一个隐藏的运算 ,这个取模的操作实际上就是数字超长截断。利用这个特性, 等价于 因此在编码上,我们只要把 编码成 即可实现减法与加法(在计算机上)的统一。这个编码方式就是补码。反码是原码转为补码的中间状态。