补码运算(补码运算)
一、补码怎么算
补码的计算方法如下:
一、补码加法。
X+Y补= X补+ Y补。
例:X=+0110011,Y=-0101001,求X+Y补。
X补=00110011 Y补=11010111。
X+Y补=X补+Y补=00110011+11010111=00001010。
注:因为计算机中运算器的位长是固定的,上述运算中产生的最高位进位将丢掉,所以结果不是100001010,而是00001010。
二、补码减法。
X-Y补=X补-Y补=X补+(-Y)补。
其中(-Y)补称为负补,求负补的方法是:负数的绝对值的原码所有位按位取反;然后整个数加1。
三、补码乘法。
设被乘数X补=X0.X1X2……Xn-1,乘数Y补=Y0.Y1Y2……Yn-1。
X*Y补=X补×Y补,即乘数(被乘数)相乘的补码等于补码的相乘。
补码的意义:
补码“模”概念的引入、负数补码的实质、以及补码和真值之间的关系所揭示的补码符号位所具有的数学特征,无不体现了补码在计算机中表示数值型数据的优势,和原码、反码等相比可表现在如下方面:
1、解决了符号的表示的问题。
2、可以将减法运算转化为补码的加法运算来实现,克服了原码加减法运算繁杂的弊端,可有效简化运算器的设计。
3、在计算机中,利用电子器件的特点实现补码和真值、原码之间的相互转换,非常容易。
4、补码表示统一了符号位和数值位,使得符号位可以和数值位一起直接参与运算,这也为后面设计乘法器除法器等运算器件提供了极大的方便。
二、补码的基本运算
[-54-30]补= [-54]补+ [-30]补。-54的补码:因为是负数,所以符号位为1,54=32+16+4+2=0110110(2),取反=1001001,加1=1001010,
所以-54的补码是1 1001010.同理,30=16+8+4+2=0011110(2),取反=1100001,加1=1100010,-30的补码是1 1100010.[-54-30]补=1 1001010+ 1 1100010= 1 0101100
根据补码的补码是原码:[[-54-30]补]补=原码。符号位为1,说明为负数,0101100取反=1010011,加1=1010100,转化为10进制得84,故结果为-84。
补码的表示方法是:
正数的补码就是其本身
如+9的补码是00001001。
负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1.(即在反码的基础上+1)
[+1]= [00000001]原= [00000001]反= [00000001]补
[-1]= [10000001]原= [11111110]反= [11111111]补
对于负数,补码表示方式也是人脑无法直观看出其数值的.通常也需要转换成原码在计算其数值。
扩展资料
正整数的补码是其二进制表示,与原码相同。
例:+9的补码是00001001。
求负整数的补码,将其对应正数二进制表示所有位(包括符号位)取反(0变1,1变0,符号位为1不变)后加1。
同一个数字在不同的补码表示形式中是不同的。比如-15的补码,在8位二进制中是11110001,然而在16位二进制补码表示中,就是1111111111110001。以下都使用8位2进制来表示。
例:求-5的补码。
-5对应正数5(00000101)→所有位取反(11111010)→加1(11111011)
所以-5的补码是11111011。
参考资料来源:百度百科——补码
三、补码怎么计算
+62原码01000001,反码和补码与原码相同
-62原码11000001:
反码10111110
补码10111111
例如:
+64原码=反码=补码=0100 0000。
-10原码=1000 1010;
-10反码=1111 0101;
-10补码=1111 0110。
以补码相加,得:0011 0110,这是+54的补码。
扩展资料:
假设当前时针指向8点,而准确时间是6点,调整时间可有以下两种拨法:一种是倒拨2小时,即8-2=6;另一种是顺拨10小时,8+10=12+6=6,即8-2=8+10=8+12-2(mod 12).在12为模的系统里,加10和减2效果是一样的,因此凡是减2运算,都可以用加10来代替。
若用一般公式可表示为:a-b=a-b+mod=a+mod-b。对“模”而言,2和10互为补数。实际上,以12为模的系统中,11和1,8和4,9和3,7和5,6和6都有这个特性,共同的特点是两者相加等于模。
参考资料来源:百度百科-补码