十进制转换压缩BCD程序如何写?

例如十进制数59转换成压缩BCD为 0x59,请问这个程序如何写,要写好的程序

第1个回答  推荐于2016-05-12
#include "stdio.h"
#include "stdlib.h"
bcdf(int num)
{
switch(num)
{
case 0:return 0;break;
case 1:return 1;break;
case 2:return 10;break;
case 3:return 11;break;
case 4:return 100;break;
case 5:return 101;break;
case 6:return 110:break;
case 7:return 111;break;
case 8:return 1000;break;
case 9:return 1001;break;
default printf("error using\n");getchar();exit(0));
}
}

main()
{
int a=59;
int bcdnum[2];
bcdnum[0]=bcdf(a/10);
bcdnum[1]=bcdf(a%10);
printf("%d %d\n",bcdnum[0],bcdnum[1]);
}追问

我的意思是说,想要例如59转换成0X59存入temp中的代码

追答

0x59是十六进制数59 不是10进制数
在存储变量中,变量的值是一定的。只是根据显示出来可以按各种进制显示
比如
a=59
a=0x3B
这两个代码的作用的一样的。

要把两位数以bcd码的形式存储,只有是定义一个2*4的变量,比如int temp[2] 替代上边的bcdnum[2],就可以用bcd的形式存储进去了,如果是为了压缩的话,可以采用bool型。

本回答被提问者采纳

十进制102转换成压缩bcd
每一位都转成4位2进制 1:0001 0:0000 2:0010 合起来就是0001 0000 0010 压缩bcd码的每一位用4位二进制表示,一个字节表示两位十进制数。例如10010110b表示十进制数96d;非压缩bcd码用1个字节表示一位十进制数,高四位总是0000,低4位的0000~1001表示0~9.例如00001000b表示十进制数8。

十进制数74转换为压缩BCD码是多少
十进制数74转换为压缩BCD码是01110100。压缩BCD码是指其中各十进制数位都分别由二进制数字来表示的二进制编码记法。需要注意的是每个十进制数都用一组四位二进制数来表示。不足4位者(十进制数0到7)加添0字开头,以凑足4位。十进制数74转换为压缩BCD码是7=0111,4=0100。即十进制数74=压缩BCD码...

将十进制数转换为 bcd码输出的汇编程序
执行ROL指令循环左移NUM1[DI]寄存器值,设置循环条件为JCA1。若满足,则执行AA1指令,将结果转换为30H和31H的BCD码。循环结束后,使用INT21H指令输出结果,最后设置AH值为4CH,使用INT21H指令结束程序。以上程序实现了将十进制数转换为BCD码的输出,关键步骤包括数据读取、循环操作、寄存器操作以及BCD码转...

将ASCII码表示的十进制数转换成压缩BCD
31H的个位数1作为压缩BCD码的十位数,32H的个位数2作为压缩BCD码的个位数,于是就构成了压缩BCD码12H。以下都是类似的。

十进制数74转换为压缩BCD码是多少
十进制数74转换为压缩BCD码是01110100b。所谓的压缩BCD码,指的就是用四位二进制数表示一位BCD码,用一个字节表示的两位BCD码,称为压缩型BCD码。一个BCD码占4位,而一个字节有8位。若把二个BCD码放在一个字节中,就叫压缩的BCD码。而一个字节只放一个BCD码,高位置0,则叫非压缩的BCD码。

用C语言编写输入2个十进制数,输出是一个压缩的BCD码(如输入64,输出 011...
if(p) { d2b(n\/2,p-1); printf("%d",n%2); }}void func(unsigned n){ if(n>9) func(n\/10); d2b(n%10,4); printf(" ");}int main(){ unsigned n; scanf("%u",&n); func(n); return 0;} ...

十进制数如何转换为压缩和非压缩bcd码
原是十进制的数的不用转就是BCD码,因BCD码的意就是十进制数码。压缩的就是在一个八位字节中放二位十进制数,这就要动一下了,把原放在二个字节中的二个单位的数,高位的先改放到字节的高四位中,再和低位的原就在低四位的或合到一起就成压缩的了。这样做的目的主要是为了节省存贮单元,可是...

十进制转化为BCD码怎么转?
把十进制的每一位用四位二进制数表示,就这么简单,从0-9的8421码很容易记住的。例:365 3 = 0011 6 = 0110 5 = 0101 365 = 1101100101 十进制换算BCD码,整数从右边开始,每个数是4位二进制代码。比如:(195)10=(110010101)BCD,小数和其他进制转换不一样,是数位换算:(0.28)10=(0....

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

如何将10进制数转化为BCD码形式的数字?
转换过程:把BCD码 0010(十进制数为十位上的 2)右移4位(其实表示当作一个个位数,或者说单纯的数值),然后乘以10 还原到十进制的权重(因为这个数本来表示的就是十进制数中的十位)。处理完十位上的数,接着处理个位上的数。因为BCD码的权重和二进制的前四位权重是一样(2^n,n为位数)...

相似回答