大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
如果采用与十进制减法相同的方法,那么从一个较大的二进制数中减去一个较小的无符号二进制数就很容易了。示例如下:
01101 (十进制数 13)
– 00111 (十进制数 7)
———-
位 0 上的减法非常简单:
01101
– 00111
———-
0
下一个位置上执行(0-1),要向左边的相邻位借1,其结果是从 2 中减去 1:
01001
– 00111
———-
10
再下一位上,又要向左边的相邻位借一位,并从 2 中减去 1:
00011
– 00111
———-
110
最后,最高两位都执行的是零减去零:
00011
– 00111
———-
00110 (十进制数 6)
执行二进制减法还有更简单的方法,即将被减去数的符号位取反,然后将两数相加。这个方法要求用一个额外的位来保存数的符号。
现在以刚才计算的(01101-00111)为例来试一下这个方法。首先,将 00111 按位取反 11000 加 1,得到 11001。然后,把两个二进制数值相加,并忽略最高位的进位:
01101 (+13)
11001 (-7)
——-
00110 (+6)
结果正是我们预期的 +6。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/189764.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...