[4]计算机内有符号数据表示法

作者: xahy 分类: 笔记 发布时间: 2019-07-17 20:29

在计算机内有符号数据有3种表示法:原码、反码和补码。
(ps:计算机在操作时,都是采用数据对应的二进制的补码来进行计算的。)

原码:
就是二进制的定点表示法,即最高位为符号位。“0”表示正数,“1”表示负数,其余位表示数值的大小。
反码:
正数的反码和其原码一致。
负数的反码是对其原码的逐位取反,符号位除外。
补码:
正数的补码和其原码一致。
负数的补码是在其反码的末尾加1(二进制表示,故逢2进1)。
图例:

练习1:
已知X的原码为10110100B。求X的反码和补码?
符号位 数值位
原码: 1 0110100
反码: 1 1001011
补码: 1 1001100(反码尾数+1得2,故进1,余0)

练习2:
已知Y的补码是11101110B。求其原码?
符号位 数值位
补码: 1 1101110
反码: 1 1101101 (ps:末尾-1不够,向前借一位就是:2-1,然后余1)
原码: 1 0010010

总结:
给出三者其中一个码,逆向推导的方式:取决于最高位[首位]是整数还是负数。
如果首位是 0,即整数:直接就是原码、反码和补码一致。
如果首位是1,即负数:补码末尾-1得出反码,反码逐位取反(0取反为1,1取反为0)得出原码,原码即可得出原数。

发表评论

电子邮件地址不会被公开。 必填项已用*标注