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

如题所述

int a=100;//a是一个十进制数
char str[10];//str是字符型数组
sprintf(str,"%h",a);//转换成16进制并保存于str数组之中
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-07-18
单片机中,那里有十进制数?
转换后,16进制数又送到那里去?追问

16进制数我要送给D/A

追答

D/A是那里呀?
说个地址好不好?

追问

我的意思是说,单片机C编程中,我在keil里里定义了这几个:
uchar m;
uchar a=1;
uchar b=4;
uchar c=2;

我想这样运算 m=100*c+10*b+a;可以吗?最后的m值是多少呢?

追答

最后的m值,就是 241。
在计算机中,m 是二进制数字:11110001。
也可以写成16进制:0xF1。
----
比如我定义的是 int m=110 怎样将m转换成16进制的呢?
--
你一旦定义了,不用你转换,m 就是二进制数字:0110 1110。
也就是16进制数:0x6E。

本回答被提问者采纳
第2个回答  2011-07-18
强制转换追问

怎么强制转换呢?比如我定义的是 int m=110 怎样将m转换成16进制的呢?

第3个回答  2011-07-18
一般的单片机上都用汇编语言,哪来那么多空间存放C编译器程序呢?

单片机中怎样用C语言实现 十进制数化成16进制数?
int a=100;\/\/a是一个十进制数 char str[10];\/\/str是字符型数组 sprintf(str,"%h",a);\/\/转换成16进制并保存于str数组之中

求大神用52单片机C语言把13位的10进制数转换为16进制数!!急求啊!!加2...
{ j-=10; \/\/A-F的数据换算成0-5 j+='A'; \/\/A-F的数据以A为基点进行偏移即可 } write1602(2,5,j); \/\/显示数据码高4位 j=temp&0x0f;if(j<10) \/\/0-F在ASCII码中并不连续,所以要分开处理 { j+='0'; \/\/0-9的数据以0为基点进行偏移即可 } else { j-=1...

c语言编程 把十进制转换为十六进制
方法一:#include<iostream>#include <string>using namespace std;string DecIntToHexStr(long long num){string str;long long Temp = num \/ 16;int left = num % 16;if (Temp > 0)str += DecIntToHexStr(Temp);if (left < 10)str += (left + '0');elsestr += ('A' + left -...

求大神用52单片机C语言把13位的10进制数转换为16进制数!!急求啊!!加2...
首先假设你要转换的这个10进制字符串是存在一个数组里:char decimal_char[]="2345624805922" ;注意这里每一个元素存的是你那一位数的ASCII码,比如 2的ASCII码 ‘2’ = 2 + 48 ->50 如果你每一位存的不是ASCII码,而是本身的真值,那就每一位加上48转换成ASCII码,然后定义一个整数来存放实际...

51单片机,C语言,编程,把十进制转位十六进制对应的数,十进制的一百转换过...
我发十进制的100给单片机,--- 十进制的100,经过串口传输,到了单片机,就是十六进制的一百,即 64H。用它控制灯闪一百下,即可。

单片机实现4位一体数码管显示0000—FFFF的16进制(C语言编程)怎么编程...
\/\/段码由P0口输出,P2.3-P2.0依次接位选的高到低\\x0d\\x0a#include\\x0d\\x0atypedef unsigned char u8;\\x0d\\x0atypedef unsigned int u16;\\x0d\\x0avoid Delay(void);\\x0d\\x0avoid Disp(void);\\x0d\\x0au16 Cnt;\\x0d\\x0au8 code LED[]={\\x0d\\x0a0x3F,\/\/ 0\\x0d...

单片机C语言数组,十六进制转十进制
是单片机的,不是电脑上的VC程序,楼下的又是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了。也可以...

单片机 十进制数转十六进制后用ASCII码传输的问题
你可以使用查表法莱处理啊,这样就不会出错了:char TAB[]="0123456789ABCDEF";ASCII[0]=TAB[BIN0\/16];ASCII[1]=TAB[BIN0%16];这样多简单!

单片机中进制的问题
这位仁兄:你的这个程序转换的是将原十进制数字用BCD码表示,不是十六进制。举例说明如下:253转换成16进制为:FFH,转换成BCD码为:001001010011 BCD,是分别把2、5、3用2进制表示(0010)(0101)(0011)合起来是001001010011 ,这样做是为了数码管显示用的。

单片机的c语言编程中能直接用十进制计算吗
能,编译器反汇编的时候会自动把10进制转化为需要的进制。不过如果学习单片机,进制的转换是非常非常入门的东西。建议找本微机原理的书,写得很详细。

相似回答
大家正在搜