首页 > 编程知识 正文

小数的二进制原码反码补码,原码反码补码真值

时间:2023-05-05 19:09:30 阅读:148529 作者:2642

真正的计算机机器数量的真值称为真值。 机器数量的最高位是符号位,所以计算真值时要区分开来。 例如,机器数量10000101,简单地作为二进制数,变换为十进制数的话就是133。 然而,其真值不计算已编码比特,其中最高1表示“-”。 所以10000101的真值是-5。

下面的讨论以字长8为例

源代码=符号位真值。 例如:

[ 5]源代码=0 000010

[-5]源代码=1 000010

源代码表示对应真值直观,转换也简单,但直接计算会出现问题,需要进行一系列的转换。 详情请参阅www.imooc.com/article/213…

反符号正数反符号与其原符号相同; 负数的反码,除了编码比特外,其原始的编码逐比特地相反。 因为进位会引起问题。 详情请参阅www.imooc.com/article/213…

补数)正的补数与原符号相同,负数的补数等于该反码的最后一位加1的值。

0和-0的表示法在源代码和反码中都有两种形式,但只有一个补充代码。

[ 0]=[0000 0000]原=[0000 0000]反=[0000 0000]补

[-0]=[1000 0000]原=[1111 1111]反=[0000 0000]补

由此,10000000原本表示-0,但现在可以省略表示其他数,现在用于表示-128 (因为可以正常表示到-127 )。 因此,这有短型的显示范围。 - 128至127

对于扩展的16位数据,signed short -1转换为unsigned short 65535是由于以下原因:

-1的原始代码为10000000 00000001,对应的辅助代码为11111111 11111111

而且,unsigned short 65535的补数也是1111111 111111,所以在二进制表现上是一致的!

11111111 11111111=2的16次方- 1=65536 - 1=65535

参考: shortsi=32768; 未注册短消息usi=si; 输出usi是多少? - Milo Yip女士的答复www.zhihu.com/question/28…

浮点数二进制显示参考: www.Ruan Yifeng.com/blog/2010/0…

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。