计算机用反码,是为了做减法
可以用硬件(集成电路)加法器实现。
正数加正数,不用变化,直接送入加法器。
正数加负数:
正数减一个数,等于加原数的负数,等于加它的反码。
负数才有反码。负数才需要有反码。
正数没有反码,或不需要反码。为了定义上的完整,约定:正数的反码和其源码相同。
是的,对于正数来说,其二进制原码,反码,补码均为相同的,为原码的形式;
对于负数来说,其反码为符号位保持不变,其余各位取反后再在最后一位上加1。
例如:十进制数+18=二进制数010010(第一位为符号位,0为正,1为负),其反码和补码均为010010
十进制数-18=二进制数110010,其反码为101101(符号位保留,其余取反),补码为101110(符号位保留,其余各位取反后末位加1)
计算机用反码,是为了做减法可以用硬件(集成电路)加法器实现。正数加正数,不用变化,直接送入加法器。正数加负数:正数减一个数,等于加原数的负数,等于加它的反码。负数才有反码。负数才需要有反码。正数没有反码,或不需要反码。为了定义上的完整,约定:正数的反码和其源码相同。是的,对于正数来说,其二进制原码,反码,补码均为相同的,为原码的形式;对于负数来说,其反码为符号位保持不变,其余各位取反后再在最后一位上加1。例如:十进制数+18=二进制数010010(第一位为符号位,0为正,1为负),其
首先提几个概念:
原码
,
反码
,补码
原码
是什么?
原码
就是早期用来表示数字的一种方式: 一个
正数
,转换为二进制位就是这个
正数
的
原码
。负数的绝对值转换成二进制位然后在高位补1就是这个负数的
原码
举例说明:
int类型的 3 的
原码
是 11B(B表示二进制位), 在32位机器上占四个字节,那么高位补零就得:
00000000 00000000 00000000 00000011
int类型的 -3 的...
一个数在计算机中的二进制表示,叫做这个数的机器数。在计算机中最高位为符号位。0代表
正数
,1代表负数。
+1 机器数(8位):0000 0001
-1 机器数(8位):1000 0001
计算机存储最小单位,位(bit)
1位=1bit
1Byte = 8bit
换算公式如下:
2. 真值
顾名思义就是数据的真正的值。
1000 0001 的真值是-1
0000 0001 的真值是+1
一个字节代表的真值范围是 [-128,127] 计算机用码表示,请看下文,知道来
1.
原码
:
正数
的
原码
就是其二进制表示的本身。例如,+6的
原码
是 0110。
2.
反码
:
正数
的
反码
与其
原码
相同
。例如,+6的
反码
也是 0110。
3. 补码:
正数
的补码也与其
原码
相同
。例如,+6的补码仍为 0110。