美文网首页
原码、补码、反码和位运算

原码、补码、反码和位运算

作者: kakaLP | 来源:发表于2023-05-21 05:13 被阅读0次

    规则:如图

    1、正数的原码、补码、反码都是自身;

    2、负数的反码等于符号位不变,数值位取反;

    3、负数的补码等于其反码+1;

    4、通过原码计算补码的规则和通过补码计算原码的规则相同;

    5、无论正数还是负数在计算机中都是以补码形式存储的,方便计算机进行计算,消除了减法,所以在对十进制的变量进行位运算的时候,需要先将其二进制的编码转化为其对应的补码,运算完成后再将的到的新的二进制转化为原码,再将原码转化为十进制数值进行展示。

    实际上在计算机上面对十进制的变量进行位运算,底层操作的是我们这个十进制数对应的补码,例如:

    1110 0011            -99的二进制值

    1001 1100            -99的二进制值的反码

    1001 1101            补码 = -99反码+1,因为无论正数还是负数在计算机中是以补码形式存储的,所以1001 1101这就是-99在计算中存储的二进制

    -99的二进制左移一位得到0011 1010,因为0011 1010是正数,所以补码和原码相同,对应到十进制是58

    -99的二进制右移一位得到1100 1110,因为1100 1110是负数,通过补码1100 1110计算得到原码1011 0010,对应到十进制是-50

    1010 0011            -35的二进制值

    1101 1100            -35的二进制值的反码

    1101 1101            补码 = -35反码+1,因为无论正数还是负数在计算机中是以补码形式存储的,所以1101 1101 这就是-35在计算中存储的二进制

    -35的二进制左移一位得到1011 1010,因为1011 1010是负数,通过1011 1010计算得到原码1100 0110,对应到十进制是-70

    -35的二进制右移一位得到1110 1110,因为1110 1110是负数,通过1110 1110计算得到原码1001 0010,对应到十进制是-18

    相关文章

      网友评论

          本文标题:原码、补码、反码和位运算

          本文链接:https://www.haomeiwen.com/subject/lrynsdtx.html