
补码怎么算
补码的算法如下:
一、补码加法
[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。
例:1+(-1)[十进制]
1的原码00000001 转换成补码:00000001
-1的原码10000001 转换成补码:11111111
1+(-1)=0
00000001+11111111=00000000
00000000转换成十进制为0
0=0所以运算正确。
三、补码乘法
设被乘数【X】补=X0.X1X2……Xn-1,乘数【Y】补=Y0.Y1Y2……Yn-1。
【X*Y】补=【X】补×【Y】补,即乘数(被乘数)相乘的补码等于补码的相乘。
补码的含义:
计算机中的有符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理 。

2024-12-03 广告
补码,并非是:符号位原码反码取反加一符号位不变。
补码,来自于周期性规律的变化。
时针,倒拨 3 小时,可以用正拨 9 小时来代替,
怎么算? 就是:正拨=周期(12)-倒拨。
分针,倒拨 X 分,也可以用“正拨 (60-X)分”代替。
另外,角度 α,也和:α + 2nπ 相同。
因此,-90°,也就等于:360 -90 = +270°。
补码,也是这个变换方法。
8 位 2 进制数的计数周期是:2^8 = 256。
[ -X ]补码,就是等于:256-X。
-----------------
例一:求-31 的八位补码是多少?
题解:256-31 = 225 = 1110 0001 (二进制补码)。
例二:求+80 的八位补码是多少?
题解:256+80 = 336 = (1) 0101 0000 (取低八位)。
例三:用补码计算 80-31 = ?
列竖式:
+80: 0101 0000
-31: 1110 0001
--相加-------
进 1、 0011 0001
略去进位,0011 0001,即为:+49。
以上,就是补码的算法。
负数的补码,就用它的正数,减一取反,即可得到补码。
如,已知:+9 补码是:0000 1001。
下面求-9 补码:
先减一:0000 1001 - 1 = 0000 1000;
再取反:1111 0111。
所以有:-9 补码 = 1111 0111。
这不就完了吗?
简不简单?意不意外?
原码反码符号位,讨论这些垃圾干嘛?