博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

有符号数的表示(原码 反码 补码)

Posted on 2017-02-21 19:27  天高鹿苑  阅读(3167)  评论(0)    收藏  举报

可以用字节,字,双字或者更多的字节来表示有符号数。

1. 原码

 最左边一位二进制表示这个数的符号: ”0“代表正,”1“代表负。后面是它的”有效数字“。

一个字节存储的有符号数原码,有127个正数(1~127);有127个负数(-1~-127)和2个”0“。‘正’0:0 000 0000;

‘负’0:1 000 0000;

原码的表示规则虽然简单,但是运算规则比较复杂,不利于计算机的高速运算的实现。

2. 反码

用最高位‘0’表示符号为正,‘1’表示符号为负。符号位之后的二进制位用来存储这个数的有效数字:  正数的有效数字不变,负数的有效数字取反。

1字节存储有符号数反码,有127个正数(1~127),127个负数(-1~-127)和2个“0”,

“正”0:0 000 0000, “负”0:1 111 1111.

反码的运算规则仍然比较复杂,可以用作原码和常用的补码之间的一个过渡。

 

3. 补码

  补码表示法仍然用最高有效位(MSB)表示一个有符号数的符号,“1”表示符号为负,“0”表示符号为正。

其他二进制位数用来存储这个数的有效数字。正数的有效数字不变,负数的有效数字取反后最低位加1.