c语言十进制转bcd码
❶ 用c语言编写输入2个十进制数,输出是一个压缩的BCD码(如输入64,输出 0110 0100 )
#include<stdio.h>
voidd2b(unsignedn,unsignedp)
{
if(p)
{
d2b(n/2,p-1);
printf("%d",n%2);
}
}
voidfunc(unsignedn)
{
if(n>9)
func(n/10);
d2b(n%10,4);
printf("");
}
intmain()
{
unsignedn;
scanf("%u",&n);
func(n);
return0;
}
❷ 十进制怎么转成BCD码
十进制转成BCD码是整数从右边开始,每个十进制数都用一组四位二进制数来表示。
压缩BCD码是分别由二进制数字来表示各十进制数位的二进制编码记法。需要注意的是每个十进制数都用一组四位二进制数来表示。不足4位者(十进制数0到7)加添0字开头,以凑足4位。比如将十进制数75转换为BCD码:7=0111,5=0101所以拼成BCD码的结果是:(0111 0101)BCD。
(2)c语言十进制转bcd码扩展阅读:
计算机只能识别二进制数,但人们却熟悉十进制数,而不习惯用二进制数,因此,在计算机输入和输出数据时,经常采用十进制数。所不同的,这里的十进制数是用压缩BCD码来表示的。
压缩BCD码也广泛地运用于各种电子设备中。特别是在测试仪表以及另外那些具有十进制输入与/或输出的设备中.运用得更普遍。十进位数字计数器.万用表以及其它数字仪表,就是一类例子;数字电子表是另外一类例子。这与一个标准四位二进制计数器的前十个状态相同。
❸ 汇编中十进制如何转换为bcd码
8421 还是?
❹ 如何将输入得四位十进制数,转成BCD码,存在地址为3000H为起始地址的内存中。 (用c语言)
用 C 语言?
有点不像啊。
❺ c语言bcd码转十进制
这道题是输入一个整数,然后转成二进制,二进制在转成BCD码
❻ 十进制数15.78转换为BCD码是多少
十进制数15,78转换为BCD码是00010101、01111000。
用4位二进制数来表示1位十进制数中的0~9这10个数码,简称BCD码(Binary-CodedDecimal_)。
0=0000,1=0001、2=0010,3=0011、4=0100,5=0101、6=0110,7=0111、8=1000,9=1001、所以15,78转换为BCD码是00010101、01111000。
❼ C语言十进制转二进制原理
原理是小于10时不变,大于9时用-10作为个位(半个字节),而进位+6(即代码中的0x06),因为+1对于4位二进制码不一定产生进位。
c= i>>4;和d= i&0x0f;就是把一个字节的i拆成了c(高4位)和d(低4位)两个字节,便于按BCD码的单个字符操作。
这个函数只解决两位数的十进制数变换问题,把2位十进制数变成了一字节二位BCD码,如把19变成了00011001,对应的十进制是25。所以它并没有“将十进制数变换成一般意义上的二进制码”一般意义上19的二进制码是00010011,而非00011001。
(7)c语言十进制转bcd码扩展阅读:
注意事项
十进制转二进制可以使用库函数itoa,itoa函数原型:char*itoa(int value,char*string,int radix);
例如:
#include<stdio.h>
intmain()
{
inta,s[20],i=0,rem;
printf("请输入一个正整数: ");
scanf("%d",&a);
while(a){
rem=a%2;
a=a/2;
s[i++]=rem;
}
printf("二进制:");
while(i>0)
printf("%d",s[--i]);
printf(" ");
return0;
}❽ 将十进制数50.47转换为BCD码为多少
十进制转成BCD码是整数从右边开始,每个十进制数都用一组四位二进制数来表示。
压缩BCD码是分别由二进制数字来表示各十进制数位的二进制编码记法。需要注意的是每个十进制数都用一组四位二进制数来表示。不足4位者(十进制数0到7)加添0字开头,以凑足4位。比如将十进制数75转换为BCD码:7=0111,5=0101所以拼成BCD码的结果是:(0111 0101)BCD。
❾ 51单片机求助
运用c语言不存在10进制或者16进制,你这是刚从汇编转c语言所遇到的问题,在c语言中不管你用哪种进制表示的数都是一样的,多写些程序就能明白。