C语言编程:怎么把一个十合肥二进制编程教育数转换成为一个十六合肥二进制编程教育数?

15:26 提问
输入一个十进制整数,依次转换成2到16进制数
求大神帮帮忙做一下
我刚刚学C语言
弄了好久都没弄出来
大神帮忙编一个程序代码
按赞数排序
#include &iostream&
char metachar[] = "abcdef";
void tobasen(int x, int n)
if (x & 0)
tobasen(x / n, n);
cout && metachar[x % n];
int main()
int x = 100;
for (int i = 2; i &= 16; i++)
cout && i && "进制";
tobasen(x, i);
2进制1100100
3进制10201
在线编译验证。
另外,你可以将int x = 100;修改为
int x = 0;
cout && "please enter a number in base 10" &&
实现用户输入(在线编程环境没法输入,所以直接指定了100,好让你看到结果)
请参考以下代码,转二进制的,如果要转八或十六进制,直接修改一下代码即可
#include &stdio.h&
int binaryNum[16];
//存放转换后得到的二进制码
int count=0;
//计数十进制整数被2除的次数
int oneCount=0;
//得到的二进制码中1的个数
void main(){
printf("输入一个十进制的整数:");
scanf("%d",&num);
while( (num/2) != 1 ){
//判断条件为:除以2之后的商不等于1
binaryNum[count] = num%2;
//取余后的数字存入数组
//num = num/2; 进行下一轮的判断
//此变量用来指定数组下标
binaryNum[count+1] = 1;
//最后一次除法做完以后,剩下的商一定是1,所以在最后手动添加一个1
printf("二进制数值为:");
搞清原理,慢慢的写,然后debug,就么问题,自己动动手
搞清原理,慢慢的写,然后debug,就么问题,自己动动手
void print_2(int val2)
unsigned char *p = (unsigned char*)&val2 + 3; //从低位到高位,低端字节计算机
for(int k = 0; k &= 3; k++)
int val2 = *(p-k);
for (int i = 7; i &= 0; i--)
if(val2 & (1 && i))
printf("1");
printf("0");
printf(" ");
int main()
scanf("%d", &a);
printf("十六进制为 : %x \n", a);
printf("二进制为 :");
print_2(a);
int Change(char NumStr[],int num,int system);
int main()
int num,BitN
char NumStr[32];
scanf("%d",&num);
for(int i=2;i&17;i++)
BitNum=Change(NumStr,num,i);
for(;BitNum!=-1;BitNum--)
printf("%c",NumStr[BitNum]);
printf("\n");
int Change(char NumStr[],int num,int system)
while(num != 0)
NumStr[i] = num%
if(NumStr[i]&10)
NumStr[i]+='0';
NumStr[i]+='A';
NumStr[i]-=10;
return i-1;
2216关注|3175收录
其他相似问题&&&&c语言编程题:从键盘输入一个十进制数,将其转换为二进制、八进制和十六进制数,并同时输出。
c语言编程题:从键盘输入一个十进制数,将其转换为二进制、八进制和十六进制数,并同时输出。
c语言编程题:从键盘输入一个十进制数,将其转换为二进制、八进制和十六进制数,并同时输出。
嵌到我的页面
<input type="text" readonly="true" value="">
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
课程资源下载排行查看: 1547|回复: 14
请教大神们,如何用C语言将十六位十六进制的数转化成十进制数?
主题帖子精华
高级会员, 积分 706, 距离下一级还需 294 积分
在线时间14 小时
例如,我要将0x1234转换成十进制的数,C语言要怎样实现呢?我试过很愚蠢的方法,把0x1234分4次分别与上0x0,0x1,然后分别除以16^3,16^2,16^1,1,出来结果是错误的...
回复【13楼】ljjdglg520:
---------------------------------
直接使用printf当然不可以啊,因为它默认的输出设备是控制台,你想要将字符串输出到usart,那要先重定向putchar()函数
11楼给出的方法是先用vsprintf将数据格式化输出到字符串,然后在用串口输出函数将这个字符串输出
va_list,&va_start,&va_end&是stdarg提供的变长参数的提取方案,你包含了#include&&stdarg.h&,就能使用这个功能了
你自己上网搜 ...
成长不是衣服越来越小,裤子越来越短,而是心和梦想一起越来越大!
主题帖子精华
初级会员, 积分 76, 距离下一级还需 124 积分
在线时间4 小时
回复【13楼】ljjdglg520:
---------------------------------
直接使用printf当然不可以啊,因为它默认的输出设备是控制台,你想要将字符串输出到usart,那要先重定向putchar()函数
11楼给出的方法是先用vsprintf将数据格式化输出到字符串,然后在用串口输出函数将这个字符串输出
va_list,&va_start,&va_end&是stdarg提供的变长参数的提取方案,你包含了#include&&stdarg.h&,就能使用这个功能了
你自己上网搜搜:printf重定向,stdarg,变长参数.&&就都明白了.&&不要寻求现成的东西,那样没啥进步.&世界是公平的,越难的事,做成了收获就越多
供大家参考,希望和同行交流经验
主题帖子精华
在线时间381 小时
应该分别乘16的n次方
for循环+右移指令
笨点的就自己找几个数按照自己的算法测试看能不能出正确结果
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
主题帖子精华
高级会员, 积分 706, 距离下一级还需 294 积分
在线时间14 小时
回复【2楼】龙之谷:
---------------------------------
昨晚试了一个晚上,就是拿了最简单的8位0x12来试,移位,乘,除,与,都用过了,就是出不来结果-&-
成长不是衣服越来越小,裤子越来越短,而是心和梦想一起越来越大!
主题帖子精华
高级会员, 积分 706, 距离下一级还需 294 积分
在线时间14 小时
回复【2楼】龙之谷:
---------------------------------
光棍节还在敲代码,注定孤独一生啊我
成长不是衣服越来越小,裤子越来越短,而是心和梦想一起越来越大!
主题帖子精华
金牌会员, 积分 1186, 距离下一级还需 1814 积分
在线时间312 小时
是需要用十进制来显示吗?在内存中十六进制和十进制的数据是没有区别的,所以只是在相同的数据展示给人看的时候需要处理,要不参考下printf的实现,%d就是以十进制来显示,%x就是以十六进制显示。
P.S:我光棍节也在敲代码啊,已经有女儿了,敲码和光棍和孤独没关系,呵呵。
机器生汇编,汇编生B,B生C,C生万物.... 经过长期对C语言的研究,目前只有两个方面不懂:这也不懂,那也不懂
主题帖子精华
高级会员, 积分 706, 距离下一级还需 294 积分
在线时间14 小时
回复【5楼】ianhom:
---------------------------------
捏个,我现在在开发zigbee方面的,没有printf那些用。。有的话就很容易了,我目前只会输出字符,所以要把数据分离开来
成长不是衣服越来越小,裤子越来越短,而是心和梦想一起越来越大!
主题帖子精华
金牌会员, 积分 1186, 距离下一级还需 1814 积分
在线时间312 小时
回复【6楼】ljjdglg520:
---------------------------------
用的是ti的2530开发的吗,我记得z-stack提供了类似printf的函数可以输出十进制,你找找看
机器生汇编,汇编生B,B生C,C生万物.... 经过长期对C语言的研究,目前只有两个方面不懂:这也不懂,那也不懂
主题帖子精华
高级会员, 积分 706, 距离下一级还需 294 积分
在线时间14 小时
回复【7楼】ianhom:
---------------------------------
酱紫,我现在只会HalUARTWrite这个函数打印字符串,我好好找找看,3Q
成长不是衣服越来越小,裤子越来越短,而是心和梦想一起越来越大!
主题帖子精华
初级会员, 积分 76, 距离下一级还需 124 积分
在线时间4 小时
回复【6楼】ljjdglg520:
---------------------------------
#define&HEX&=&0x;
char&dec[20];
char&*p_dec&=&&dec[20];
char&*p_dec2&=&&dec[0];
usigned&long&
for(tmp=HEX;&tmp&0;&tmp&/=&10)&&&//将HEX变成十进制的字符串(不含'\0'),存入到dec[]中,但是是右对齐
&&&&{
&&&&*p_dec&=&tmp&%&10&+&'0';&&&&&//每次都对HEX做:取个位数,然后将HEX整除10,取到的数存入到dec[]中
&&&&p_dec--;
&&&&}
p_dec++;&&&&&&&&//对字符串添加'\0'
for(*p_dec2=&dec[0];p_dec&!=&dec[21];)&&&//将字符串右对齐变成左对齐
&&&&{
&&&&*p_dec2&=&*p_
&&&&p_dec2++;
&&&&p_dec++;
&&&&}
*p_dec2&=&'\0';
//此时十进制字符串就在dec[]数组中了
供大家参考,希望和同行交流经验
主题帖子精华
初级会员, 积分 76, 距离下一级还需 124 积分
在线时间4 小时
//使用vsprintf()函数将数据格式化输出到数组中,是一劳永逸的方式
//&stdio.h&属于C标准库,只要是能够使用C语言的集成开发环境中,都必须包含C标准库,这是ANSI规定的
//所以只要你使用C,你就放心使用vsprintf()吧,保证绝对支持
#include&&stdio.h&
#define&HEX&=&0x;
uint8_t&tstr[100];
vsprintf(&tstr[0],"This&is&the&decimalism&converted&from&Hex:&%d",HEX);
//现在tstr[]中存入的数据是:"This&is&the&decimalism&converted&from&Hex:&"
//希望我的回复你还满意
供大家参考,希望和同行交流经验
主题帖子精华
高级会员, 积分 706, 距离下一级还需 294 积分
在线时间14 小时
回复【10楼】kinkun:
---------------------------------
首先谢谢你的解答,我现在有个问题就是,在IAR的环境下加入了stdio.h这个头文件,但是用printf打印不了东西,但是编译不出错。。。
成长不是衣服越来越小,裤子越来越短,而是心和梦想一起越来越大!
主题帖子精华
高级会员, 积分 612, 距离下一级还需 388 积分
在线时间179 小时
回复【11楼】ljjdglg520:
---------------------------------
[C] 纯文本查看 复制代码/*********************************************************************
SerialPrintf
实现标准C中printf函数
打印的字符数
static uint32 SerialPrintf(const char *fmt, ...)
uint32 ulLen = 0;
char *pBuf = (char *) osal_mem_alloc(128);
// 开辟缓冲区
va_start(ap, fmt);
ulLen = vsprintf(pBuf, fmt, ap);
// 用虚拟打印函数实现
va_end(ap);
HalUARTWrite(HAL_UART_PORT_0, (uint8 *) pBuf, ulLen);
// 从串口0输出
osal_mem_free(pBuf);
// 释放内存空间
pBuf = NULL;
return ulL
// 返回打印的字符数
你把这个移植过去,就可以实现printf的功能调用。
SerialPrintf("Hello&world!\r\n");
SerialPrintf("num&=&%d\r\n",num);
主题帖子精华
高级会员, 积分 706, 距离下一级还需 294 积分
在线时间14 小时
回复【12楼】BMN李:
---------------------------------
这么厉害,谢谢啊^_^
成长不是衣服越来越小,裤子越来越短,而是心和梦想一起越来越大!
主题帖子精华
高级会员, 积分 706, 距离下一级还需 294 积分
在线时间14 小时
回复【14楼】kinkun:
---------------------------------
谢谢啦。我确实这方面的基础不扎实-&-
成长不是衣服越来越小,裤子越来越短,而是心和梦想一起越来越大!
Powered by如何求十进制数转换为十六进制数,用c语言,谢谢
[问题点数:20分,结帖人hanufo]
如何求十进制数转换为十六进制数,用c语言,谢谢
[问题点数:20分,结帖人hanufo]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2009年5月 扩充话题大版内专家分月排行榜第三2009年2月 扩充话题大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。求助,在线等,把一个变量从十进制转换到十六进制_c语言吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:464,656贴子:
求助,在线等,把一个变量从十进制转换到十六进制收藏
转换后的值赋给另一个变量我不行了,各位高手们帮帮我吧
楼主最近玩的游戏,寻策略小伙伴!
变量a,是从DS18B20获取的温度,整型要变成16进制的数才能在LCD1602上显示就是这样,谢谢你
变量a,是从DS18B20获取的温度,整型要变成16进制的数才能在LCD1602上显示就是这样,谢谢你
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或

我要回帖

更多关于 合肥二进制编程教育 的文章

 

随机推荐