不枉初心,砥砺前行

皮皮祥的博客

欢迎留言,评论

导航

计算机中为什么都是补码???

举个2位机的例子,假设我们的PC机是2位机,即只能表示4个数字:00,01,10,11,这时Byte的范围是0~3, 

所谓补码,就是这样来映射: 
00~0 
01~1 
10~-2 
11~-1 

所谓反码,就是这样来映射: 
00~+0 
01~1 
10~-1 
11~-0 

所谓原码,就是这样来映射: 
00~+0 
01~+1 
10~-0 
11~-1 

由此可见,所谓原码、反码、补码都只是一种二进制到十进制的映射定义,补码是一一映射,源码和反码是单射但不是满射,对十进制的0都有两个二进制与其对应(+0、-0),所以浪费了一个码。补码的另一个优点是加法和减法可以统一运算和处理,溢出也能自动取模。 

所以,计算机里的数无所谓原码、反码、补码,是人对这些二进制数的意义的解释才有了“X码”的区别。

posted on 2022-04-28 15:25  皮皮祥  阅读(170)  评论(0)    收藏  举报