我是靠谱客的博主 暴躁服饰,最近开发中收集的这篇文章主要介绍BCD码:8421码介绍:功能:二进制和十进制数字对照:换算算法:,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

介绍:

BCD(Binary-Coded Decimal)码,也叫二-十进制码,主要就是用4位二进制数来表示1位的从0~9的十进制数。

BCD码主要分为有权码(8421码,5421码,2421码)和无权码(余3码,余3循环码),这篇文章将主要介绍有权码中的8421码。

功能:

在一次编程练习中,需要分别提取出十进制数的个,十,百,千位。通过BCD码可以实现此功能。

二进制和十进制数字对照:

从二进制和十进制数字对照十分简单,就像原理所说的:用指定的4位二进制数来表示1位的从0~9的十进制数。对照表格即可:

 

换算算法:

8421码主要有两种换算算法,从二进制到十进制(B to D),从十进制到二进制(D to B)。

B to D:

从二进制转换到十进制需要用到权值8421来进行计算。只需要将8,4,2,1分别与二进制中的四位相乘后再相加,就能得到十进制对应的数字,如下表所示:

红色字体为二进制的8421码。 

D to B:

将十进制数编码成二进制数的过程相对复杂一点,我总结了一下,并把过程分为三个步骤,但是其中两个步骤是同级进行的。

1. 补0

在像转换的十进制数的二进制数前面,补上十进制数的位数乘以4的0。举个例子(下面都以这个为例子),我现在需要转换的十进制数是103,二进制为110 0111。此时十进制数的位数为3,所以我们就要在110 0111前补上3*4=12个0,一共3组。所以我们就能得到:

0000 0000 0000 110 0111

2. 移位&判断

得到补0后的数,需要把原数进行左移,并且每左移一次判断一次,哪一组0大于4,就将那组的二进制数+3(in Decimal)后,再进行移位;如果所有组的二进制数都小于或者等于4,就进行下一次移位。

直到将原数的7位(例子103)全部移位完,输出数据。

 由图可知,输出的数据正确。

并且我只需要4位4位的提取,就能清楚的知道这个数的个位,十位和百位,来进行我想要的操作。

最后

以上就是暴躁服饰为你收集整理的BCD码:8421码介绍:功能:二进制和十进制数字对照:换算算法:的全部内容,希望文章能够帮你解决BCD码:8421码介绍:功能:二进制和十进制数字对照:换算算法:所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(80)

评论列表共有 0 条评论

立即
投稿
返回
顶部