我直接说明现代计算机中,整数是以怎样的方式存储的,这里抛开了历史上各种内容的讲解。
- 现代计算机,基本上都采用8421BCD码的编码方式,并且大多数计算机都采用小端法进行二进制信息的存储。
- 原码、反码和补码的前提,是使用8421BCD码,而这三种形式,是在8421BCD码编码的前提下,确定十进制负数,在二进制形式下的表达方式。
- 现代计算机,基本都采用补码的形式,存储十进制中的负数。
对于十进制整数来说,现代计算机通常是这样存储的(假定能存储4位二进制数)
有无符号 | 机器码 | 表示范围 |
---|---|---|
有 | 补码 | -8 ~ 7 |
无 | 8421BCD码 | 0 ~ 15 |
其中,机器数的范围是0000 ~ 1111
。
在整数范围内,不需要考虑其他的形式,并且,从十进制到二进制转换过程,是计算机自动完成的。
以下是简化模型:
上下两个进程,展现了
- 人类输入的十进制数字,被转换为二进制信息,进入计算机
- 计算机对二进制信息,在CPU中进行相关处理
- 将二进制信息转换为十进制,展现在人类面前
对于十进制与二进制相互转换的过程,不是本文关心的,你只需要知道它是计算机自动完成的。
扩展学习书籍:《编码:隐匿在计算机软硬件背后的语言》