有关十进制整数(BCD)转换成二进制的电路设计!

作者&投稿:粱雨 (若有异议请与网页底部的电邮联系)
~

十进制整数(BCD)转换成二进制:

在数学中,我们都知道随便一个十进制数如5468,那么它的计算过程可以转换为:5468=5*1000+4*100+6*10+8,因此BCD码转成二进制数的算法就是:

abcd=a*1000+b*100+c*10+d。

这种算法是最常规的一种算法,里面需要用到乘法器以及加法器,这种实现方式比较耗费资源,下面梦翼师兄会介绍一种算法,这种算法需要用到加法和移位来完成BCD转二进制数的功能,从而尽可能的节约逻辑资源。

二进制码左移一位等于未左移的二进制码*2,例如有二进制码101001,转成十进制等于41,左移一位得到1010010,转成十进制等于82。

也就是说二进制码左移1位加上左移3位可以等效于二进制码乘以10。

用实例分析:十进制数29;

用BCD码表示:十位上的十进制数为2==BCD码表示为0010;个位上的十进制数9===BCD码表示为1001;所以总的来说十进制数29用BCD码表示为:00101001。

转换过程:把BCD码0010(十进制数为十位上的2)右移4位(其实表示当作一个个位数,或者说单纯的数值),然后乘以10还原到十进制的权重(因为这个数本来表示的就是十进制数中的十位)。处理完十位上的数,接着处理个位上的数。

因为BCD码的权重和二进制的前四位权重是一样(2^n,n为位数),所以直接用前面的十位上的数加上它就可以了。

简单点分析:0010(十位上的2BCD码表示)×10+1001(个位上的9BCD码表示)=29的二进制数

C代码表示:#define BCD_TO_BIN(val)   ((((val) >> 4) * 10) +  ((val)&15))。

扩展资料:

BCD码是用4位二进制数(各个位的权重分别为:8421,所以叫8421码)来表示一位十进制数。

这里的一位十进制数要特别说明下,一位十进制数只能是 0~9之间的一个数值。比如:6 就是表示一位十进制数6;66则是表示两位十进制数;666则是表示三位十进制数。

BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。这种编码技巧最常用于会计系统的设计里,因为会计制度经常需要对很长的数字串作准确的计算。

相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免去使计算机作浮点运算时所耗费的时间。此外,对于其他需要高精确度的计算,BCD编码亦很常用。

参考资料:百度百科-BCD码




BCD码怎么表示十进制数?
1、十进制换算BCD码,整数从右边开始,每个数是4位二进制代码。比如:(195)10=(1 1001 0101)BCD,小数和其他进制转换不一样,是数位换算:(0.28)10=(0.0010 1000)BCD。BCD码换算成十进制数的方法如下:1、BCD码与十进制数的转换关系很直观,相互转换也很简单,将十进制数75.4转换为BCD...

十六位进制数 BC表示为10进制数
BC(16)=11*16+12

帮忙解答问题 (多)【从速】
B. 前两个数字是单选框左下角的坐标值,后两个数字是单选框右上角的坐标值C. 前两个数字是单选框左上角的坐标值,后两个数字是单选框的宽和高D. 前两个数字是单选框左下角的坐标值,后两个数字是单选框的高和宽下列各无符号十进制整数中,能用八位进制表示的是___。A、296 B、333 C、256 D、199进入...

十进制整数123添上1个0后成为什么数?
二进制数10去零得1,对照十进制整数是原来的1\/2,二进制数:100和110去零后一样是1\/2因为一个n进制数中各个数码的位置有着不同的位权,而这些位权是n的整数次幂,所以相邻的两个数码相差n倍.比如,十(n=10)进制数,个位的位权是10^0=1,十位的位权是10^1=10,百位的位权是10^2=100,所以在十...

大师帮帮忙(19BC.8)16进制数转成十进制数,请问那个B和C是什么意思啊...
解:B相当于十进制中的11 C相当于十进制中的12 19BC.8 =1*16³+9*16²+11*16+12+0.8*(1\/16)=6588.5

整数包括0吗
偶数包括正偶数(亦称双数)、负偶数和0。所有整数不是奇数,就是偶数。在十进制里,我们可用看个位数的方式判断该数是奇数还是偶数:个位为1,3,5,7,9的数为奇数;个位为0,2,4,6,8的数为偶数。整数的性质及应用 如果不加特殊说明,我们所涉及的数都是整数,所采用的字母也表示整数。定义 设a,b...

c语言十进制转化为十六进制原理
小数部分,十进制 转化为十六进制 可以用 不断地 乘16“取整数”的 的方法 得到。例如:十进制 17852.5 转化为十六进制,17852\/16 = 1115 余 12 -- c 1115\/16 = 69 余 11 -- b 69\/16 = 4 余 5 4\/16 = 0 余 4 整数部分 得16进制: 45bc .5 * 16 = 8.0 取 8...

二进制,八进制,十进制,十六进制要怎么弄懂?
③ 十六进数制化为十进制 (2D3.BC)16=2×162+13×161+3×160+ 11×16-1++ 12×16-2 =(723.734375)10 十进制化为二进制 整数部分: 除2取余 小数部分: 乘2取整 除2取余 乘2取整 十进制转换成八进制 整数部分:除8取余 小数部分:乘8取整 十进制转换成进制十六进制 整数部分:...

十进制数125.125转换为二进制数是()。
【答案】:C 正确答案是C。提示:整数小数分别转换。十进制整数部分125可用除2取余数的方法得到,即为1111101B;小数部用乘2取整得到,即为001B。

(19BC.8)16进制数转成十进制数,请问那个B和C是什么意思啊?这要怎么算...
16进制,01到09就是1到9,0A,0B到0F分别是10,11到15.10就是16……即使懂得原理,你自己手工计算转换也还是比较麻烦的,尤其是象你说的19BC这样的大数。这个可以借助进制换算工具,不用额外找,WIN系统里自带的计算器就有这功能,选择“科学型”,就会看到出现不同进制了。选择16进制后,输入19BC...

安县19847058645: 如何将BCD数转换成十进制,2进制,16进制例如18 34 87 255 这些数字怎么转换啊 -
薄岸泰罗:[答案] bcd码也叫8421码就是将十进制的数以8421的形式展开成二进制,大家知道十进制是0~9十个数组成,着十个数每个数都有自己的8421码: 0=0000 1=0001 2=0010 3=0011 4=0100 5=0101 6=0110 7=0111 8=1000 9=1001 举个例子: 321的8421码...

安县19847058645: BCD码是将十进制数符转换成几位二进制 -
薄岸泰罗: BCD码4位2进制表示一个数字,与十六进制的区别是只有0-9这几个数字,举个例子来说10的BCD码是0001 0000 23的BCD码 0010 0011

安县19847058645: 给定一个十进制数(整数或小数)如何转化为二进制和8421BCD码,以及给定8421BCD码如何转化为十进制; -
薄岸泰罗:[答案] 8421BCD码转化为十进制: 8421码一共四位 每位都是0或者是1 假设给出的码是1010 那么每位分别和和8421对应 可得 8*1+4*0+2*1+1*0=10(十进制) 再者 码1100 8*1+4*1+2*0+1*0=12(十进制) 就是四位和8421对应在进行相加 十进制数(整...

安县19847058645: 有关十进制整数(BCD)转换成二进制的电路设计! -
薄岸泰罗: 有现成的芯片. 芯片(1)74LS154 :4-16线译码器,四位2进制数(4位BCD码编制)转换为16位2进制数 芯片(2)74LS138 :3-8线译码器,3BCD---转8位2进制数 你可以去www.21ic.com上搜索这两个芯片的原理图.原理图太大了上传不了.

安县19847058645: 十进制整数转换成二进制数的最简便方法是“除2取余”法,它是用待转换的十进制整数除以2,取其余数,作为相应二进制数的最低位,然后,再用商除以... -
薄岸泰罗:[选项] A. 10010 B. 10011 C. 11001 D. 1010

安县19847058645: BCD码怎么转换成标准二进制形式? -
薄岸泰罗: BCD是十六进制,分别代表十进制中的11,12,13. 楼主把11,12,13按十进制转化二进制的方法转化就是.具体应该是除二取余数的方法吧.

安县19847058645: 将BCD数转换为二进制数的原理是什么,哪位帮我讲解一下? -
薄岸泰罗: BCD是十进制数编码,用4位二进制数表示一位十进制数,而4位二进制数可以表示0-15共16个数,所以4位二进制数后面的6个数 1010 ,1011, 1100 ,1101 ,1110 ,1111 就不用了,或者说BCD码只是4位二进制数的前10个.

安县19847058645: BCD码是怎样转换为二进制的? -
薄岸泰罗: 任何“码”的内在形式本来就是二进制.对机器而言,不需要转换.所以“码转换二进制”是伪命题对人而言,可能要转换成二进制的“表现形式”便于人类阅读.BCD编码每4bit代表一个十进制数...

安县19847058645: 如何把十进制数字转换为二进制数字? -
薄岸泰罗: 十进制整数转二进制: 就是把该十进制数,用二因式分解,取余. 以12为例,转为二进制 2除以12得6,余0,取0 2除以6得3,余0,取0 2除以3得1,余1,取1 最后剩下1,由它开始写起,就可得1100的二进制结果 十进制中的小数转为二进制:, 就是把该小数不断乘2,再取所得的整数部份,直至没有小数为止,但请注意并不是所有小数都能转到! 以0.875为例, 0.875剩以2得1.750,取整数1 0.750剩以2得1.500,取整数1 0.500剩以2得1,取整数1,就可得0.111的二进制结果

安县19847058645: 任何十进制整数可有什么法转换成二进制 -
薄岸泰罗: 十进制整数转换为二进制整数,采用"除2取余,逆序排列"法.具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来. 1、125/2=62~1;2、 62/2=31~0 ;3、31/2=15~1 ;4、15/2=7~1 ;5、7/2=3~1;6、 3/2=1~1所以二进制部分是 高位从后往前654321,取 111101

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网