十六进制转BCD码用什么语句?

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

void HextoBCD(u8 *pBuff,u8 len) //十六进制转为BCD码

{

u8 i,temp;

for(i=0;i<len;i++)

{

temp=pBuff[i]/10;

time[i]=pBuff[i]%10+temp*16;

}

}

bcd码就是用二进制数来表示常用的十进制数。就是用四个位的二进制来表示一个二进制数。一个字节一共有八个位,它就可以表示两个bcd码。比如,0FH等于二进制物15,用一个字节低四位来表示5,高四位来表示1合起来就是15H,不用转换两次的。

扩展资料

例如:

63÷10=6……3

即商是6,余数是

如果将商乘以16再加上余数,就是:6×16+3=99,其16进制数就是63H,即是十进制数63(16进制为3FH)的BCD码为63H。

如果在单片机中,程序这么写:char HEX,BCD;BCD=(HEX/10*16)+(HEX%10);

其中HEX存储十六进制数,BCD中存储的就是其BCD码。

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




bcd码怎么转换成十六进制数?
可以用加3移位法转换:bcd码中只有0~9十进制数,但是在四位二进制中是16进制进1,因此在移位过程中要对二进制进行判断,当在移位之后的状态Qn+1大于9,要对Qn加6才可以。例如:1000移位大于9加6为0001_0110,对应bcd码中的16。也可以在移位之前进行判断,如果移位之前的Qn数据大于4,说明Qn+1会...

C语言中怎么把16进制转换成bcd码
void HextoBCD(u8 *pBuff,u8 len) \/\/十六进制转为BCD码 { u8 i,temp;for(i=0;i<len;i++){ temp=pBuff[i]\/10;time[i]=pBuff[i]%10+temp*16;} }

8421 BCD码怎样转换成十六进制
可以用加3移位法转换:BCD码中只有0~9十进制数,但是在四位二进制中是16进制进1,因此在移位过程中要对二进制进行判断,当在移位之后的状态Qn+1大于9,要对Qn加6才可以。同时,也可以在移位之前进行判断,如果移位之前的Qn数据大于4,说明Qn+1会溢出,所以可以+3再进行移位,和刚才结果是一样的。

如何将8位二进制数据转换成BCD码。
大于就要加3,否则不加.理解了这个算法之后,那么BCD转二进制就非常容易了,减3移位即可,减3可以用补码来解决。加3移位法只能把整数的二进制码转成整数的BCD码,小数则不行,要算小数的话,可以先乘以10的n次方,再转BCD码。6、 参考文献 基于CPLD的二进制码转换为二.十进制(BCD)码的电路 ...

字节和bcd码之间有什么关系?
而BCD码是用4位二进制数来表示1位十进制数中的0~9这10个数码,常用的是8421-BCD码,每个数都有自己的8421码: 0=0000 1=0001 2=0010 3=0011 4=0100 5=0101 6=0110 7=0111 8=1000 9=1001 压缩BCD码和非压缩BCD码:压缩BCD码用4位2进制表示,1字节(8位2进制)表示2位BCD码,如10010011B...

求助高人,单片机实验。将05的二进制数转换为BCD码。 写出详细过程,谢谢...
什么叫做“05的二进制数转换为BCD码”???把十六进制的05H转为BCD? 太简单了吧。看过来:设R1单元存放一个十六进制数,把它转成BCD,转换后的结果存放在R2,R3,则:MOV A, R1 ;取被除数 MOV B #64H ;除以100 DIV AB MOV R2, A ;商的百位存入R2单元 MOV A...

在汇编中 BCD码表怎样表示
BCD(binary code decimal)即二-十进制,是一种用二进制编码的十进制数.BCD码又称8421码,可以用压缩的BCD码或非压缩的BCD码格式来表示十进制数.1.压缩的BCD码用4位二进制表示一个十进制数位,整个十进制数形成一个顺序的以4位为一组的数串,例如 :bcd1 word 0237h bcd2 dword 12345678h 注意...

bcd码(1001010010)转换成二进制数是多少?转换成十进制是多少?十六进 ...
bcd码(10 0101 0010),转换成十进制数是:252。转换成二进制数是:11111100。转换成十六进制是:FC。

各位单片机好友最近在做DS1302时BCD码什么意思
BCD码是2进制表示的十进制数。16进制的18H是10进制的24 换成BCD码就是0010 0100B,用16进制就是 24BCD. 0010是2 ,0100是4.Value=(Value\/10)*16+Value%10 把10进制的24用BCD码表示是24BCD,即00100100,变换方法就是,24\/10*16+24% 10 24除10是2乘16是32,用二进制表示 是00100000;...

三菱plc中bcd码到底是二进制表示一位十进制 还是十六进制表示一位十进制...
三菱plc中bcd码到底是二进制表示一位十进制 还是十六进制表示一位十进制?三菱plc中bcd码是用4位二进制码数表示1位十进制数 每位bcd码中数的范围在0---9(十进制),所以 ,bcd码中数读起来十进制、十六进制均能读通。但它既不是十进制数,也不是十六进制数,而是bcd码数 ...

承德县13162104120: 十六进制转化 bcd码 -
书文郝智: 我举个例子吧,你编程的时候照着这方法来就没错了: 假设16进制数3FH,其十进制数值为3*16+15=63,所以先进行如下过程: 63÷10=6……3 即商是6,余数是 如果将商乘以16再加上余数,就是: 6*16+3=99,其16进制数就是63H,即是十进制数63(16进制为3FH)的BCD码为63H. 如果在单片机中,程序这么写: char HEX,BCD; BCD=(HEX/10*16)+(HEX%10); 其中HEX存储十六进制数,BCD中存储的就是其BCD码.

承德县13162104120: 用汇编语言怎样实现16进制转换为压缩的BCD码 -
书文郝智: 一个十六进制数最大255,所以转换为压缩BCD码需要两个字节,转换方法是: 1、第一步,用该数除以100,结果存入高八位字节的低四位. 2、第二步用余数除以10,结果存入低八位的高四位. 3、第三遍,将余数存入低八位的低四位. 例程: H2BCD:MOV B,#100 DIV AB MOV R2,A MOV A,B MOV B,#10 DIV AB SWAP A,BANL A,#0F0H ORL A,B MOV R3,A RET

承德县13162104120: 十进制126转化BCD码 -
书文郝智: void HextoBCD(u8 *pBuff,u8 len) //十六进制转为BCD码 { u8 i,temp; for(i=0;i{ temp=pBuff[i]/10; time[i]=pBuff[i]%10+temp*16; } }

承德县13162104120: 怎么将16位二进制数转换成BCD码的汇编语言程序 -
书文郝智: MOV R0, TH1 MOV R1, TL1 CALL HEX2BCD ;调用子程序把R0 R1中的数字,转换成BCD码,送到R2 R3 R4;-------下面,把万千百十个位,分别存入R4 R3 R2 R1 R0 MOV A, R4 MOV B, #16 DIV AB ;除以16,目的是分离出高、低四位 MOV...

承德县13162104120: 十六进制转换为bcd码汇编语言怎么实现.最好用除法.其实我想问的是 -
书文郝智: CBW 是将AL中的8位有符号数扩展成AX中的16位等值有符号数. 8位有符号数在00H ~ 7FH范围内时为正数,AH扩展成全0就可以了. 8位有符号数在80H ~ FFH范围内时为负数,AH应扩展成全1才能保持等值.AAH 是负数,所以CBW后的结果是FFAAH

承德县13162104120: 用汇编语言编辑程序:将一个字节十六进制数转化为三位BCD数 -
书文郝智: //不用数组 不考虑负数和0 #includeint main() { int num; printf("Please input a number\n"); scanf("%d",&num); printf("the number is %d:\nthe convert is :",num); while ( num > 0 ) { printf("%d",num % 10); num /= 10; } printf("\n"); return 0; }

承德县13162104120: 怎么把16进制的0FAH转换成用BCD表示的数,转换成BCD吗是不是为250,求详细的过程 -
书文郝智:[答案] (0FA)H =((0*16+15)*16+10)D =(15*16+10)D =(240+10)D =(250)D =(0010 0101 0000)BCD

承德县13162104120: 十六进制转化为二进制与bcd码的区别 -
书文郝智: 十六进制:0~9、A~F. bcd码:0~9.十六进制转化为二进制,直接转换,即可.十六进制转化为bcd码,0~9,直接转换即可; 而 A~F,就要转换成两个BCD码.A ----> 10 B ----> 11 …… F ----> 15

承德县13162104120: 大神协助:编写小于999的十六进制数转换为BCD码的子函数? -
书文郝智: #includeusing namespace std; #include bool DecToAny(list&dst, double src, int system, int precision=6) { if (system < 2 && system > 36) return false; char fmt[] = "0123456789abcdefghijklmnopqrstuvwxyz"; int num = src; dst.clear(); while (num >...

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