如何用C语言将一个十六进制数字转换为十进制

如何将一个十六进制数字转换为十进制,例如:给出0XFFFF,如何将其转化为65535输出?要求用C实现,急。。。... 如何将一个十六进制数字转换为十进制,例如:给出0XFFFF,如何将其转化为65535输出?要求用C实现,急。。。 展开
 我来答
幻翼高达Zero
2019-07-22 · TA获得超过1.7万个赞
知道答主
回答量:499
采纳率:0%
帮助的人:8万
展开全部

需要准备的材料分别有:电脑、C语言编译器

1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。

2、在test.cpp文件中,输入C语言代码:int a = 0XFFFF;printf("%d", a);。

3、编译器运行test.cpp文件,此时成功将十六进制数转换为十进制进行了输出。

禄新雁
推荐于2017-12-16 · TA获得超过273个赞
知道答主
回答量:441
采纳率:0%
帮助的人:258万
展开全部
你可以设置一个字符串数组
char HEX[16] =

以后你得出的数字,比如余数y是10,那么HEX[y]打印出来就是A了

例子(现写的)

int now;
int res[100];//答案
int c = 0;//位数

输入到now;
while (now > 0)
{
res[c] = now % 16;
now = now / 16;
c++;
}

输出是:
for (i = 0; i < c; i++)
{
输出 HEX[res[i]];
}

算法的精髓都给你啦,好好理解吧
/**********************************************

**************** 补充 *****************

**********************************************/

改你的代码

#include "stdio.h"
void main()
{
char HEX[16] = ; //<----------------这里加了
int num;
printf("请输入一个十进制整数:");
scanf("%d",&num);

int a[10]; //<----------------这里改了
int i=0;
int yushu;
while(num>0)
{
yushu=num%16;
a[i]=yushu;
num=num/16;
i++;/*关键的就在这里,这后面书上写的要用SWITCH,但是我用不好,请各位大虾指教*/

}

printf("转化为十六进制的数为:");
for(;i>=0;i--)//倒序输出
{
printf("%c",HEX[a[i]]); //<----------------这里改了

}
printf("\n");
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mozili1985
2011-09-05 · TA获得超过121个赞
知道答主
回答量:70
采纳率:0%
帮助的人:47万
展开全部
你将那个十六进制的数字赋值给一个int型的变量,就直接转化为int型的了。
如果用程序实现这个功能是不用的 计算机会直接转换的。

另外 输出的时候可以控制输出格式。
要注意下C语言的int型的阀值,不要越界。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友34a7d2d
2011-09-05 · 超过17用户采纳过TA的回答
知道答主
回答量:32
采纳率:0%
帮助的人:51.7万
展开全部
你把这个数字直接%d输出就是十进制的
比如你int ival = 0xFFFF;
int jval = ival;
jval 也就是等于你说的那个65535 不要转换啊,他们表示的就是一个数字
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
就是这样的夜
2011-09-05 · TA获得超过838个赞
知道小有建树答主
回答量:820
采纳率:0%
帮助的人:514万
展开全部
没心情写,给个思路好了。
先转为字串,得字串长度n,然后按
h(n)*16^n+h(n-1)*16^(n-1)+....求和。

要是老师不看过程,可按楼上的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式