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

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

作者: 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

相关文章

  • 2018-10-22 Python31 原码、反码、补码

    原码、反码、补码 1)如何计算补码?规则: 正数:原码 = 反码 = 补码负数:反码 = 符号位不变,其他位取反补...

  • 原码、反码和补码

    正数的原码、反码和补码相同,亦是正数 负数的原码、反码和补码符号位为1,代表负数,反码在原码的基础上符号位不变,其...

  • 原码、反码、补码

    规则: 计算机运算时,都是以补码的形式进行 正数的反码和补码都与原码相同。 负数的反码为对该数的原码除符号位外各位...

  • 数据的表示

    1位符号位+7位数值位正数:原码=反码=补码负数:反码=原码数值位取反 符号位不变补码=反码+1补码的表示范围位数...

  • 原码、反码、补码和移码

    书中关于原码、反码、补码和移码的定义如下(n是机器字长):原码: 反码: 补码: 移码: 原码, 反码, 补码的基...

  • 补码

    原码、反码、补码 原码:符号位 反码:减法变加法 补码:+1解决-0问题 数学原理 同余 反码:mod127 补码...

  • java中二进制、八进制、十进制、十六进制的转换

    运行结果: 然后简单总结一下原码、反码和补码:正数:原码、反码和补码都相同负数:原码:第一位为符号位,后面是数字位...

  • 原码,反码和补码

    在计算机内,有符号数有3种表示法:原码、反码和补码,所有数据的运算都是采用补码进行的。 正数的原码,反码,补码都相...

  • [计基]-二进制之补码

    一.基础名词 原码 : 0011 反码 :0011(原码) >> 1100(反码) (原码按位取反) 补码 :00...

  • JAVA中负数的二进制表示

    计算机对有符号数(包括浮点数)的表示有三种方法:原码、反码和补码,反码=原码按位取反 补码=反码+1。 移码为补码...

网友评论

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

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