你好,欢迎访问我的博客!登录 读者墙 文章归档 免责声明 投稿本站 本站主题
当前位置:首页 - 分享 - PC知识 - 正文 君子好学,自强不息!

源码,反码,补码(转载)

2017-06-28PC知识墨初381°c
A+ A-

转录一篇关于计算机中,源码,反码,以及补码之间的转换的文章。关于计算机底层的东西,我们更应该多多的熟悉和理解它们的工作原理!

计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。

在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。

原码、反码和补码的表示方法 

源码:

原码:在数值前直接加一符号位的表示法。 

例如: 

          符号位  数值位 

[+7]原=   0    0000111  B 

[-7]原=   1    0000111  B 

注意:

a.数0的原码有两种形式: 

[+0]原=00000000B    [-0]原=10000000B 

b. 8位二进制原码的表示范围:-127~+127 

反码: 

正数:正数的反码与原码相同。 

负数:负数的反码,符号位为“1”,数值部分按位取反。 

例如

      符号位 数值位 

[+7]反=  0   0000111  B 

[-7]反=  1   1111000  B 

注意:

a.数0的反码也有两种形式,即 

[+0]反=00000000B 

[- 0]反=11111111B 

b. 8位二进制反码的表示范围:-127~+127 

补码:

正数:正数的补码和原码相同。 

负数:负数的补码则是符号位为“1”,数值部分按位取反后再在末位(最低位)加1。也就是“反码+1”。 

例如:       

        符号位 数值位 

[+7]补=   0   0000111  B 

[-7]补=   1   1111001  B 

补码在微型机中是一种重要的编码形式,请注意: 

a.采用补码后,可以方便地将减法运算转化成加法运算,运算过程得到简化。正数的补码即是它所表示的数的真值,而负数的补码的数值部份却不是它所表示的数的真值。采用补码进行运算,所得结果仍为补码。 

b.与原码、反码不同,数值0的补码只有一个,即       [0]补=00000000B。 

c.若字长为8位,则补码所表示的范围为-128~+127;进行补码运算时,应注意所得结果不应超过补码所能表示数的范围。 

原码、反码和补码之间的转换 

由于正数的原码、补码、反码表示方法均相同,不需转换。 

在此,仅以负数情况分析。 

已知原码,求补码。 

例:已知某数X的原码为10110100B,试求X的补码和反码。 

解:由[X]原=10110100B知,X为负数。求其反码时,符号位不变,数值部分按位求反;求其补码时,再在其反码的末位加1。 

1  0  1  1  0  1  0  0   原码 

1  1  0  0  1  0  1  1   反码,符号位不变,数值位取反 

                     1   +1 

1  1  0  0  1  1  0  0   补码 

故:[X]补=11001100B,[X]反=11001011B。 

已知补码,求原码。 

分析:按照求负数补码的逆过程,数值部分应是最低位减1,然后取反。但是对二进制数来说,先减1后取反和先取反后加1得到的结果是一样的,故仍可采用取反加1 有方法。 

例:已知某数X的补码11101110B,试求其原码。 

解:由[X]补=11101110B知,X为负数。求其原码表示时,符号位不变,数值部分按位求反,再在末位加1。 

1  1  1  0  1  1  1  0   补码 

1  0  0  1  0  0  0  1   符号位不变,数值位取反 

                   1   +1 

1  0  0  1  0  0  1  0   原码 

PS:以上内容来自网络,略做修改。如有错误请在下方留言里提出!

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  选择分享方式
  移步手机端
QR:  源码,反码,补码(转载)

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
推荐阅读

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。


  登录