c语言16进制转换为10进制数的函数、 5

注明一下算法、谢谢了要的是输入一个16进制的数、以10进制的形式输出、... 注明一下算法、谢谢了
要的是输入一个16进制的数、以10进制的形式输出、
展开
 我来答
tattackor
推荐于2018-02-03 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:893万
展开全部

1、可以根据16进制转10进制的算法(即各位位码值乘以位权之和)来实现该功能。
2、具体实现方法可以参考如下程序:

#include <stdio.h>
void main()
{
     int he;    
     int re=0;   // 保存转换为10进制的结果
     int k=16;   // 16进制
     int n=1;    // 位权
     scanf("%d", &he);  // 接收用户输入的16进制数,不含0x前缀
     while(he != 0)  
     {
         re += (he%10)*n;  // 取出各位位码值,并乘以对应的位权值
         he /= 10;   // 去掉16进制数的最低位,次低位变为最低位
         n *= k;     // 位权乘以16
     }
     printf("%d",re); // 输出转换后的结果
}
百度网友dadee7f
2011-04-07 · TA获得超过1869个赞
知道小有建树答主
回答量:867
采纳率:67%
帮助的人:394万
展开全部

#include <stdio.h>

void main()

{

 int x;

 scanf("%x",&x);

 printf("%d\n",x);

}

直接输入4位16进制数,中间不能加空格。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tattackor
2015-09-27 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:893万
展开全部

1、可以根据16进制转10进制的算法(即各位位码值乘以位权之和)来实现该功能。

2、例程:

#include <stdio.h>
void main()
{
     int he;    
     int re=0;   // 保存转换为10进制的结果
     int k=16;   // 16进制
     int n=1;    // 位权
     scanf("%d", &he);  // 接收用户输入的16进制数,不含0x前缀
     while(he != 0)  
     {
         re += (he%10)*n;  // 取出各位位码值,并乘以对应的位权值
         he /= 10;   // 去掉16进制数的最低位,次低位变为最低位
         n *= k;     // 位权乘以16
     }
     printf("%d",re); // 输出转换后的结果
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
BT_RUC
2011-04-07 · TA获得超过142个赞
知道答主
回答量:52
采纳率:100%
帮助的人:42.1万
展开全部
0xa513
16^3*10 + 16^2*5 + 16^1*1 + 16^0*3
所有进制转化为10进制都是一样的,每一位乘以对应位的权值再相加。
权值就是进制的N次方,最低位为0次,依次递增
追问
看不懂啊、用函数怎么实现啊、
追答
846361911的程序就可以实现这个功能,在C语言的输入输出中可以通过格式控制来自动实现转换,我说的是其中转化的原理
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
斯文且闲雅丶风光2
2011-04-07 · 超过42用户采纳过TA的回答
知道小有建树答主
回答量:135
采纳率:0%
帮助的人:88.4万
展开全部
#include<iostream.h>
#include<math.h>
int func( int x)
{
int sum = 0;
for(int i = 0 ; x!= 0; i++)
{
sum = (x %16) * pow(16,i)+ sum;
x = x/ 16;
}
return sum;
}
void main()
{
int x = 0x10;
int y = func(x);
cout<<y<<endl; // 用十进制输出y;
cout<<hex<<x<<" "<<endl;//用十六进制输出x

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

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式