今天给大家穿插讲一期常用的数字编码形式----BCD码。可能我们在学校经常使用二进制和十六进制的数字表达形式。然而大多数情况下我们都是需要和十进制数进行转化来进行数字的表达,因为我们社会普遍习惯使用十进制。相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免去使计算机作浮点运算时所耗费的时间。
(一) 那么是什么BCD码呢?
BCD码(Binary-Coded Decimal),用4位二进制数来表示1位十进制中的0~9这10个数码,是一种二进制的数字编码形式,用二进制编码的十进制代码。
(二)如何用bcd码表示十进制数?
首先,如果我们想表达0~9这几个数字,那么我们只需要使用一个四位的BCD码就足够了。
![8c9e18f55be0e15d861461574d8fb833.png](https://i-blog.csdnimg.cn/blog_migrate/0fe70ab8952cf0b013142ea7a2de9c35.png)
细心的朋友会发现当数字大于九时,一个四位的BCD码不能够表达十进制的两位数,因此当数字大于九时,我们需要用八位BCD码来表示。高位只需要逢九进一即可。
(三)BCD码如果进行加法运算?
当两个BCD码相加,如果和等于或小于 1001(即十进制数9),不需要修正;如果相加之和在 1010 到1111(即十六进制数 0AH~0FH)之间,则需加 6 进行修正。
相加范围在九以内都不需要进行修正:如下图
![6c26ba8358a630543b34b6f3cbb4c354.png](https://i-blog.csdnimg.cn/blog_migrate/3aec64bbd956b02fe8dcfcf9b08dbbd6.jpeg)
相加超过九时:
![4133b4b67c39da1c769288644934be4e.png](https://i-blog.csdnimg.cn/blog_migrate/0da4f1a189aea8917db57cb28a233cb7.png)
![d224b93e5235edc49296437aa76a96c1.png](https://i-blog.csdnimg.cn/blog_migrate/c9c560c8db2e4b8851a5f1d593dccae4.jpeg)