1、原码:正数,以绝对值大小转换的二进制数; 用绝对值的大小变换负数的二进制数,最高位加上1的叫做原码。
例如,00000000000000000000000000000000000000000000000001是5的原码。
10000000000000000000000000000000000000000000000001是-5的源代码。
例如,byte类型在无符号整数表示为2^8时为0 - 255。 假设有符号,最高有效位表示符号,0为正,1为负,一般理解为-127到127 .这就是原码.顺便说一下,原码的弱点有0和-0两个000000000和0000000 另外,在进行异号加法运算和该号减法运算时,由于是笨蛋,所以首先判断两个个数绝对值的大小后进行加减操作,最后的运算结果的符号与大的符号相同; 于是,反码应运而生。
从博客圈引用
2、反码正数的反码与原始码相同,负数的反码相对于该整数的原始码,除了编码比特之外,各位都相反[每1比特反相(除编码比特外) ]。
逆操作是指原来为1,变为0。 原来是0,得到了1。 (1变0; 0变1 ) ) )。
例如,是正数000000000000000000000000000000000000000001的反码还是00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
负10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
因为反码是彼此的,所以100000000000000000000000000000000000000000000001和11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
3、补码正数补码与原码相同,负数补码对该数原码除符号位外反转各位,最后一位加1。
例如,100000000000000000000000000000000000000000000000001的补码是11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
那么,补码如下。
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
TIPS:的补数规定0无正负之分
我们上小组课的时候,qcdyl老师给我们讲了一个改变负数原码补码的小技巧:
(非常狂风无敌)谁用都行
负数从原码到补码的转换都是从右向左数第一个’1’不变,之后从这里沿着向左的方向,除了符号位各位取反