大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全家桶1年46,售后保障稳定
8421码是一种常见的BCD(Binary-Coded Decimal)码,它用4个二进制位表示1个十进制位:
0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | … | 1111 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | x | … | x |
例如:
我们要表示5和15,
使用二进制编码
5 - 101
15 - 1111
使用8421码表示
5 - 0101
15 - 0001 0101
在对8421码进行加减操作时候可能产生无意义的值如:1011、1100,这时候就需要进行校正.
8421码加法校正
举例:17 与 18 相加
8421码
0 0 0 1 0 1 1 1 (17)
+ 0 0 0 1 1 0 0 0 (18)
----------------------------
0 0 1 0 1 1 1 1 (?) 这是一个错误的答案,因为8421码里1111没有对应的十进制
校正方法
当低4位相加的结果大于9的时候,会产生进位,但对于4位二进制位应当大于15时才产生进位,需要对低4位加上0110也即是6来人为的制造一个进位
0 0 1 0 1 1 1 1
+ 0 0 0 0 0 1 1 0 (6)
---------------------------
0 0 1 1 0 1 0 1 (35) 校正后结果正确
8421码减法校正
有了上面加法校正的基础,我们可以类推出减法的校正
举例:17 与 8 相减
8421码
0 0 0 1 0 1 1 1 (17)
- 0 0 0 0 1 0 0 0 (8)
---------------------
0 0 0 0 1 1 1 1 (?) 结果错误,8421码中没有1111对应的十进制
校正方法
当低4位相减,高4位产生借位时,借来的是16不是10,需要对低4位减上0110也即是6来人为的制造一个准确的借位
0 0 0 0 1 1 1 1
-0 0 0 0 0 1 1 0 (6)
-------------------
0 0 0 0 1 0 0 1 (9) 校正后结果正确
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/219614.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...