原码 补码

作者在 2021-09-27 17:14:32 发布以下内容

补码是一种用二进制表示有符号数的方法,也是一种将数字的正负号变号的方式,常在计算机科学中使用。补码以有符号比特的二进制数定义。

补码系统的最大优点是可以在加法或减法处理中,不需因为数字的正负而使用不同的计算方式。只要一种加法电路就可以处理各种有号数加法,而且减法可以用一个数加上另一个数的补码来表示,因此只要有加法电路及补码电路即可完成各种有号数加法及减法,在电路设计上相当方便。

为什么补码的0只有一种?

真值

原码

补码

+0

0000 0000

0000 0000

-0

1000 0000

0000 0000

+0

0.0000

0.0000

-0

1.0000

0.0000

补码与原码的关系:补码=原码除了符号位取反+1(补码符号位可以参与运算)

整数 (0000 0000)取反:0111 1111 加1:0000 0000

     (1000 0000)取反:1111 1111 加1:0000 0000(进位的1被舍弃,就是取值不再取了)

浮点数 (0.0000)取反:0.1111 加1:0.0000

       (1.0000)取反:1.1111 加1:0.0000

为什么八位整数补码可以表示-128,浮点数可以表示-1?

真值

原码

补码

+0

0000 0000

0000 0000

-0

1000 0000

0000 0000

1

0000 0001

0000 0001

2

0000 0010

0000 0010

127

0111 1111

0111 1111

-128

1000 0000

-127

1111 1111

1000 0001

-126

1111 1110

1000 0010

-2

1000 0010

1111 1110

-1

1000 0001

1111 1111

-127-1=1000 0001-0000 0001=1000 0000

或-127-1=1000 0001+1111 1111=1000 0000(进位舍弃)

因为补码的的+0和-0用同一个数表示,因此空出来一个数可以表示-128

真值

原码

补码

+0

0.0000

0.0000

-0

1.0000

0.0000

1/16

0.0001

0.0001

1/8

0.0010

0.0010

3/16

0.0011

0.0011

1/4

0.0100

0.0100

5/16

0.0101

0.0101

3/8

0.0110

0.0110

7/16

0.0111

0.0111

1/2

0.1000

0.1000

15/16

0.1111

0.1111

1

1.0000

-15/16

1.1111

1.0001

-3/8

1.0110

1.1010

-5/16

1.0101

1.1011

-1/16

1.0001

1.1111

浮点数同样

计算机组成原理 | 阅读 1281 次
文章评论,共0条
游客请输入验证码
浏览23146次
最新评论