二进制数算术加法,如何算?说明并举例。
发布网友
发布时间:2022-04-23 05:42
我来回答
共4个回答
热心网友
时间:2022-04-03 16:05
您事先需要知道十进制到二进制的转换,以及其他的一些数制变换。
在这里重点说一下什么是2 的补码,2的补码就是 符号位是0(正数)他的 2的补码就是本
身、 符号位是1(负数) 保持符号位不变 其余各位取反然后加一,例如:1 011101(从左
至右)第一位是符号位 1 表明这个数是负数 然后保持符号位不变其它各位取反 1 100010
在加1 1 100011他就是 1 011101 基于2 的补码。再如:1110100 它基于2的补码是
1001100 ,01000001 它基于 2的补码是01000001(它本身)。
现在明白了 2 的补码在说计算机二进制减法计算,计算机加减法是基于 2 的补码完
成计算的,减法也转换成加法计算,看下面的例子:
例1:8+7 两个正数相加所以符号位都是0
0 1 0 0 0
+ 0 0 1 1 1
0 1 1 1 1
01111 是正15 因为符号位是0
例2:8-7 两个正数相加所以符号位都是0
0 1 0 0 0
— 0 0 1 1 1
变换成 0 1 0 0 0
+ 1 1 0 0 1
1 0 0 0 0 1
最高位溢出去掉 结果是 1,在这里 8-7 ,7 取了 2 的补码(表达不严密)它的所
有位都取反包括符号位在加一,这样减法变成加法操作了。
例3:8+(-7) 两个数相加8是正数符号位是0 ,7 是负数符号位是1
0 1 0 0 0
+ 1 0 1 1 1
变换
0 1 0 0 0
+ 1 1 0 0 1
1 0 0 0 0 1
这里负数变成2 的补码 变成加法操作 结果是1 最高位溢出舍去。
例4:-8+7
1 1 0 0 0
+ 0 0 1 1 1
变换 -8 变换成2的补码
1 1 0 0 0
+ 0 0 1 1 1
1 1 1 1 1
结果为负数 要变换成2 的补码 1 0001 是-1
例5:-8-(-7)
1 1 0 0 0
—1 0 1 1 1
变换 -8变换成2 的补码, -7 变换成2的补码
1 1 0 0 0
- 1 1 0 0 1
在变换
1 1 0 0 0
+0 0 1 1 1
1 1 1 1 1
因为是减法 7 取了 2 的补码(表达不严密)它的所有位都取反(包括符号位)在
加一,这样减法变成加法操作了。结果是负数 所以取2的补码 变成 10001 是-1。
总结:参与加运算的因数 如果两个数是正数 按正常的加计算 (若最高位溢出 舍去)
如果其中一个或两个是负数 那么取它的 2的补码,在进行计算。
参与减法运算的因数 如果两个数是正数 把减数 按位取反(包括符号位)在加一 变
成加法计算,如果其中一个或两个是负数 那么取它的 2 的补码,在把减数 按位取反(包
括符号位)在加一 变成加法计算。
上面的例子进位C3,C4的都相同 所以计算结果正确 如果进位C3,C4不同结果就不正
确,已经超出了 范围,上面的例子 计算范围是 1 1111 到 0 1111
热心网友
时间:2022-04-03 17:23
你可以百度十进制转换2进制方法,很简单,我就是在那学会的,他是一步步算得,
热心网友
时间:2022-04-03 18:57
2进制里面还没听说过有加法?
热心网友
时间:2022-04-03 20:49
逢2进1啊