thy110 发表于 2014-3-7 16:53:24

单片机中怎样用C语言实现 十进制数20化成16进制数14?

我想把一个十进制数在单片机内部转换为十六进制,来点亮数码管,怎么办,求大神

error_dan 发表于 2014-3-7 16:57:37

你是要把20D变成0x14吧...
直接取模不就行了,搜一下进制转换,大把的资料,这个帖子发的没意思.
单片机里面本来就没有什么十进制十六进制神马的,它只认二进制,数制转化都是给人看的.

liufabing 发表于 2014-3-7 17:00:09

你说的应该是16进制转BCD码.

kyughanum 发表于 2014-3-7 17:11:53

数组下标,查表。。。。

thy110 发表于 2014-3-7 17:31:58

我的用途是这样的,在atmage16的单片机中,通过按键设置一个数值,然后让他付给8个pc口来发送8位数据,该怎么办

thy110 发表于 2014-3-7 17:35:12

kyughanum 发表于 2014-3-7 17:11
数组下标,查表。。。。

什么表,是吧十进制对应十六进制数做成一个数组,来查询吗

519382868 发表于 2014-3-7 20:50:20

uchar zh_10_16(uchar dat)//把十进制转成16进制
{
   uchar a,b;
   a=dat/16;
   a=10*a;
   b=dat%16;
   dat=a+b;
   return dat;
}
uchar zh_16_10(uchar dat)//把16进制转成10进制
{
   uchar a,b;
   a=dat/10;
   a=16*a;
   b=dat%10;
   dat=a+b;
   return dat;
}

sddp001 发表于 2014-3-7 20:54:43

数码管?是七段数码管加小数点吗?如果那样的话自己做个十六个元素的无符号八位数组,第一个元素存数字零的段码,自己拿草稿纸画出来,自己琢磨

thy110 发表于 2014-3-8 12:57:26

519382868 发表于 2014-3-7 20:50
uchar zh_10_16(uchar dat)//把十进制转成16进制
{
   uchar a,b;


谢谢了,太好了
页: [1]
查看完整版本: 单片机中怎样用C语言实现 十进制数20化成16进制数14?