认识原码、反码、补码

python

01 进制了解

  • 二进制:由0和1共两个数字组成。

  • 八进制:由0-7共八个数字组成。

  • 十进制:由0-9共十个数字组成。

  • 十六进制:由0-9与A-Z(a-z)共十六个字母和数字组成(字母不区分大小写,A-F/a-f分别代表10-15)

02 二进制与八进制对应关系

二进制

八进制

0

000

1

001

2

010

3

011

4

100

5

101

6

110

7

111

03 二进制与十六进制转换

二进制

十六进制

0

0000

1

0001

2

0010

3

0011

4

0100

5

0101

6

0110

7

0111

8

1000

9

1001

A

1010

B

1011

C

1100

D

1101

E

1110

F

1111

字母不区分大小写

04 原反补的概念

  • 原码:二进制的表现形式

  • 反码:是原码和补码之间的转换关系

  • 补码:二进制的存储形式

05 原反补转换规律

  • 如果是一个正数:原码 = 反码 = 补码
  • 如果是一个负数:原码与反码之间互为取反加1

06 原反补的特点

  • 原码第一位是符号位,用来表达正负

    • 第一位是0,如000 ... 001 表示数字为正1
    • 第一位是1,如100 ... 001 表示数字为负1

  • 补码特点

    • 正数高位都是0
    • 负数高位都是1

  • 反码特点 :二进制码0变1,1变0叫做反码

07 例1 两正相加

2 + 3

2 3

原码:000 ... 010 原码:000 ... 011

反码:000 ... 010 反码:000 ... 011

补码:000 ... 010 补码:000 ... 011

000 ... 010

000 ... 011

000 ... 101 => 5 (正数 原码 = 反码 = 补码)

08 例2 一正一负相加

-9 + 5

-9 5

原码:100 ... 1001 原码:000 ... 0101

反码:111 ... 0110 反码:000 ... 0101

补码:111 ... 0111 补码:000 ... 0101

111 ... 0111

000 ... 0101

111 ... 1100 (负数 原码 = 补码取反加一)

补码:111 ... 1100

反码:100 ... 0011

原码:100 ... 0100 => -4

09 例3 两负相加

-3 + (-2)

-3 -3

原码:100 ... 011 原码:100 ... 011

反码:111 ... 100 反码:111 ... 100

补码:111 ... 101 补码:111 ... 101

111 ... 101

111 ... 101

100 ... 010 (负数 原码 = 补码取反加一)

补码:100 ... 010

反码:111 ... 101

原码:111 ... 110 => -6

以上是 认识原码、反码、补码 的全部内容, 来源链接: utcz.com/z/530618.html

回到顶部