大家好,又见面了,我是你们的朋友全栈君。
二进制减法的运算方法
二进制减法有两种运算方法,可以使用向高位借位的办法,也可以将减法转为加法
采用借位的办法不是很快捷,比较容易看错,示例如下:
1 0 1 0
-0 1 1 1
————
0 0 1 1
被减数末尾的0向前一位借1,相当于10(2)-1得到1,倒数第二位被借一位后变0,继续向前一位借,以此来得到结果,如果减数大于被减数,则需将最后的结果按位取反得到结果。
另外也可采用转换为加法的方式来计算,具体操作是将减数的符号位取反,如果符号取反后是1(即负数),须将其他数字按位取反后在加1。如减数是1111,则转化为1(符号位)0001,如计算1010 – 1111,先将1111,转化为10001,计算过程如下:
0 1 0 1 0 (10)
+1 0 0 0 1 (-15)
——————
1 1 0 1 1
得到的结果为1开头的数字,即是负数,所以须将得到的数符号位不变,其他数字按位取反在加1得到 1 0 1 0 1, 即-5,如果结果是正数的话,结果无需变化,就是最终结果。
在将加法变为减法的过程,实际就是利用补码在进行运算,由于正数的补码就是其本身,所以自需要变换负数为其补码既可。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/148673.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...