1. 主页
  2. 文档
  3. 汇编语言
  4. 原码反码补码理解

原码反码补码理解

P77、有符号数和无符号数规则理解

 

计算机并不知道正负,数据都是有宽度的。每个数据代表什么意思呢?

0 1 0 1 0 1 0 1 没有意义的。

 

规则:

就好像我要解析一个音频。因为MP3 有一个编码规则,需要解码才能过运行。。

 

规则,二进制解码增加一个规则

 

无符号数规则

10011010

十六进制  1000  8  0x9a

十进制  154  忘记十进制。

你这个数字是什么那就是什么

 

有符号数规则

最高位是符号位:  1负数   0正数

10011010

 

如何转换??

那就是原码反码补码

 

P88、原码反码补码理解

 

编码规则:

有符号数的编码规则。

 

原码  最高位符号位,对齐它的为进行本身绝对值即可

反码  正数,反码和原码相同。

负数,符号位一定是1,其余位对原码取反。

补码  正数,补码和原码相同。

负数,符号位一定是1,反码要+1。

 

测试:

1

原码:00000001

反码:00000001  1正数,反码与原码相同

补码:00000001  1正数,反码与原码相同

 

-1 负数

原码:1000 0001     00000001 最高位是1 10000001

反码:1111 1110  -1  00000001 最高位是1 10000001 其它位取反  11111110

补码:1111 1111  -1  00000001 最高位是1 10000001  反码要+1。 1111 1111

 

-7

原码:1000 0001

反码:1111 1000

补码:1111 1001

ff  1111  1111 只是一个符号位而已。

如果看到一个数字,二进制的,需要了解它的符号数还是无符号数。

 

二进制:

3+5

0 1 2  3  4  5

0 1 10 11 100 101

11

101

——————–

1000

 

这篇文章对您有用吗?

我们要如何帮助您?