补码的加减运算

补码的加减运算 补法加法与减法的运算规则?

补法加法与减法的运算规则?

补法加法与减法的运算规则?

为了简单 下面用一个字节表示一个整数

-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.