补码的加减运算
补法加法与减法的运算规则?
补法加法与减法的运算规则?
为了简单 下面用一个字节表示一个整数
-54 原码 10110110 反码 11001001 补码 11001010
-30 原码 10011110 反码 11100001 补码 11100010
反码相加
11001001 11100001 -gt 10101010 1=10101011 -gt (取反) 11010100(-84)
补码相加
11001010 11100010 -gt 10101100 -gt (取补码) 11010100 (-84)
反码:一个数如果为正,则它的反码与原码相同;
一个数如果为负,则符号位为1,其余各位是对原码取反。
两个数的二进制反码求和的运算规则:
1、从低位到高位逐列进行运算;
2、0 0=1,0 1=1,1 1=0(进位1加到下一列);
3、最高位相加产生的进位,要在最后的结果加1.
补码:一个数如果为正,则它的原码、反码、补码相同;
一个数如果为负,则符号位为1,其余各位是对原码取反,然后整个数加1。
补码加减法运算法则如下:
1、参加运算操作的数都用补码表示。
2、数据的符号与数据一样参加运算。
3、求差时将负减数求补,用求和代替求差, 将减法运算转化为补码的加法运算。
4、运算结果为补码。如果符号位为 0 ,表明运算结果为正;如果符号位为 1 ,则表明结果为负。
5、符号位的进位为模值,应该去掉。
补码的加减法运算?
正数的补码是原码;负数的补码是符号位(最高位)不变,其余位按位取反加1.用补码做减法运算时,结果出现的情况有正、0、负:结果为正或者0时,补码是原码,直接转换成10进制即可;结果为负时,需要将结果减1再保持符号位不变按位取反。例如:1的原码是0000 0001,补码也是0000 0001-2的原码是1000 0010,补码是1111 11101-2=1 (-2)=0000 0001 1111 1110 =1111 1111此时1111 1111 是1-2结果的补码,转换成原码是1000 0001,对应的十进制是-1.