单片机怎样把十六位二进制转为十进制(用c语言)

比如TH=00110011,TL=11001100
51单片机怎么写程序把TH,TL转换为十进制?

16位二进制数范围0-65536,转换成十进制数位j:(TH*256+TL)/10000得万位数字,(TH*256+TL)%10000/1000得千位数字……………………
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-01
typedef union _int16u_Typ{
unsigned int int16u;
unsigned char int8u[2];
}int16u_Typ;
int16u_Typ DAT;
DAT.int8[0] = TL;
DAT.int8[1] = TH;

/*DAT.int16u 就是你要的数。
直接用DAT.int16u进行运算就好了
运算完毕DAT.int8[0]和][1]为运算结果的高地位。
*/
第2个回答  2013-08-01
你是想通过数码管显示出来还是只是计算?
如果只是计算的话,可以吧他当成个变量不用转换的追问

我想的是计算 让TH,TL乘一个十进制数 然后得到的结果也为十进制数 这样的话就要把TH,TL转换为十进制

追答

不需要转化的啊 比如c=TH*b就行了啊,编译器会自动完成运算的和你转换后结果一样

单片机C语言中将二进制数转化为十进制的办法
按照如下步骤即可用C语言把二进制数转换成十进制数的程序:1、首先在主函数中设置成函数Sum,另外定义了一个数组array[8],用于存放输入的八位二进制数。2、然后使用了一个for循环语句,用于输入八位二进制数。在scanf函数里,在%d之间加一个1,然后使用printf函数输出,并且调用Sum函数,数组名作为实参。

51单片机C语言里 怎样将16进制 直接化成 10进制
printf("请输入一个十进制数a= ");scanf("%d",&a);printf("请输入一个进制数n= ");scanf("%d",&n);if(n==16)q=tentoBOH(a,n);else p=tentoBOH(a,n);printf("输出正整数%d的%d进制为:",a,n);if(n==16)for(i=0;i<count;i++)printf("%c",*(q+i));else for(i=...

C语言编单片机程序怎样将二进制转化成十进制
c=(x%100)\/10;d=x%10;这样,a=2,b=2,c=2,d=7,将a,b,c,d显示出来就是了。

单片机 如何将十六位转成十进制显示在LED上
16进制数0x10;化成10进制就是16;然后把16%10 的到的余数是6 放在个位数,16\/10得到十位数1~~然后可以相应的查表输出~~~

在单片机C语言怎么把16进制数变成10进制发到串口
有两种办法,在接收到数据之后你把16进制转为10进制就可以了,比如你发送的十进制10,传送的时是十六进制0x0A,接收到数据后转成10进制 0AH = 10。在发送时把数据转换成BCD码,发送十进制10,转成BCD码十六进制就是0x10,接收到数据时显示的就是10H。BCD码转换百度一下可以。

单片机怎样用C语言实现二进制转十进制并在LCD中显示
假设被转换的二进制数为temp unsigned char i=0;unsigned char dis_buf[3];for(i = 0; i < 3;i++){ dis_buf[i]=temp % 10;temp \/ =10;} for(i = 0; i < 3;i++){ lcd_write((dis_buf[2-i])+'0');}

单片机C语言数组,十六进制转十进制
楼下的又是scanf又是printf的。。。可以定义个int 变量来存储。int temp;temp = (ZFC[1] - '0')<<8+(ZFC[2] - '0')<<7+(ZFC[3] - '0')<<6+(ZFC[4] - '0')<<5+(ZFC[5] - '0')<<4;这样变换之后,temp就是十进制的62235了。也可以理解成16进制的0F31B。

单片机C语言 十六进制转换为十进制
8位的十六进制数temp(0~255)百位 bai=temp\/100;temp=temp%100;\/\/取余数 shi=temp\/10;ge=temp%10;16位的也是一样,只是先除以10000

PIC单片机 C语言编程实现二进制转化为十进制
如果是显示,直接做个数值和显示的对应表就好了.数码管显示就是10个数字:0-9.显示的时候,输出对应的管脚信号,到数码管的不同管脚,以显示不同码段.十进制0到9,这10个数字,要对应10种不同组合的管脚输出.与其这样,直接用二进制中的0-9,对应10种不同组合的管脚输出就可以了.0000 0000--0---对应...

的51单片机中c语言中如何将十六进制数转化为十进制
如果你仅仅是使用转换结果的话,那么赋值语句可以自动转换。比如:unsigned char x,y;y=0x5a;x=y;你输出格式是10进制,那么变量表示的就是十进制数。

相似回答