首页 > 厂商 > 知识 > bcd码转十进制,请问这个C51中的这个函数可以把BCD码转换成十进制具体原理是怎

bcd码转十进制,请问这个C51中的这个函数可以把BCD码转换成十进制具体原理是怎

来源:整理 时间:2023-08-29 09:30:55 编辑:智能门户 手机版

本文目录一览

1,请问这个C51中的这个函数可以把BCD码转换成十进制具体原理是怎

Decimal=bcd>>4;先取bcd码的高位,因为整个BCD码表示数不会超过99,所以定义成uchar就完全可以了。 return(Decimal=Decimal*10+(bcd&=0x0F)),就是高位乘10加上原来数的低位,这就转成10进制数了。
就是调用函数的时候敲错了函数名,也可以通过了。编译的时候只检查参数个数是否匹配和函数体内部语法这种情况我也见过,不会进行真正的调用,所以只能检出一个没有用的调用,不会出现错误

请问这个C51中的这个函数可以把BCD码转换成十进制具体原理是怎

2,双字节BCD码如何转换成十进数

由于4位二进制数转换成十进制1位,假设双字节BCD存放的变量是a:取a的最高4位*1000取a的高字节的低4位*100取a的低字节的高4位*10取a的最低4位把以上得到的数字加起来用c语言举例:unsigned short int a=0x2017; int b,c;c=0;b=a; b>>=12; c+=b*1000;b=a; b>>=8; b&=0x0f; c+=b*100;b=a; b>>=4; b&=0x0f; c+=b*10;b=a; b&=0x0f; c+=b;结果c=2017

双字节BCD码如何转换成十进数

3,bcd码转换成10进制数汇编语言简单的

DATA SEGMENTBCD DB 10010110b ;待转换的BCD码NUMBER DB 0 ;转换后得到的十进制DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKMOV AX,DATAMOV DS,AXMOV DX,BCD ;将BCD码移入DX中MOV BL,10 MOV AL,DHMUL BL ;将BCD码中的高四位乘以10,得到的值放入AX中AND DX,0FH ;去掉BCD码中的高四位,只保留低四位,用于下一步相加ADD AX,DX ;将DX中的低四位与AX中的值相加即得结果MOV NUMBER,AX ;将结果存入10进制的NUMBER变量中即得到十进制结果MOV AH,4CHINT 21HCODE ENDS
非压缩bcd码转换成为ascii码,只要加30h20h单元转换成为ascii放到片内50hmov a,#30haddc a 20hmov 50h,a21h单元转换成为ascii放到片内51hmov a,#30haddc a 21hmov 51h,a你可以用循环10次编

bcd码转换成10进制数汇编语言简单的

4,8421BCD码1010 0011 1101 转换成十进制是多少啊给个详细过程

这个bcd码是错误的,bcd码表示十进制,只有0000到1001有效0000=0;0001=1;0010=2;0011=3;0100=4;0101=5;0110=6;0111=7;1000=8;1001=9就是进位啦:1 0000=1 0;11 0011=33
2的11次方+2的9次方+2的5次方+2的4次方+2的3次方+2的2次方+2的0次方结果是2621
第一位乘以1,第二位乘以2,第三位乘以4,第四位乘以8,第五位乘以16,以此类推,然后将各位相乘的数相加。1001就能等于1*1+1*8=9
1010 0011 1101=2*2*2*2*2*2*2*2*2*2*2+2*2*2*2*2*2*2*2*2+2*2*2*2*2+2*2*2*2+2*2*2+2*2+1=2621 即 :2的11次方+2的9次方+2的5次方+2的4次方+2的3次方+2的2次方+2的0次方=2621
二进制编码的十进制数,简称bcd码(binarycoded decimal). 这种方法是用4位二进制码的组合代表十进制数的0,1,2,3,4,5,6 ,7,8,9 十个数符。4位二进制数码有16种组合,原则上可任选其中的10种作为代码,分别代表十进制中的0,1,2,3,4,5,6,7,8,9 这十个数符。最常用的bcd码称为8421bcd码,8.4.2.1 分别是4位二进数的位取值。
文章TAG:bcd码转十进制请问这个C51中的这个函数可以把BCD码转换成十进制具体原理是怎

最近更新