标题:关于十六进制转化为十进制的问题
取消只看楼主
不同认为
Rank: 1
等 级:新手上路
帖 子:93
专家分:3
注 册:2015-11-25
结帖率:57.14%
已结贴  问题点数:20 回复次数:2 
关于十六进制转化为十进制的问题
#include <stdio.h>
#include<string.h>
int main()
{
   int i,j,k,n=1,s=0;
   char  a[500];
   gets(a);
   k=strlen(a);
   if(n==0)
       printf("0\n");
   else
   {
   for(i=k-1;i>=0;i--)
   {   
       if(a[i]>='A')
           a[i]=a[i]-'A'+10;
       else
       if('0'<=a[i]&&a[i]<='9')
           a[i]=a[i]-'0';
       s=s+a[i]*n;
       n=n*16;
   }
   printf("%I64d\n",s);
   }
   return 0;
}
 输入 FE65CDBA 得出4268084666    但是把 printf("%I64d\n",s);  改成printf("%d\n",s)输出的是一个负数  这是为什么
2016-01-25 00:09
不同认为
Rank: 1
等 级:新手上路
帖 子:93
专家分:3
注 册:2015-11-25
得分:0 
回复 4楼 TonyDeng
还有一个问题是  我前面的s定义为int  没有定义为_int64 我用l64d的时候怎么不会报错
2016-01-25 18:54
不同认为
Rank: 1
等 级:新手上路
帖 子:93
专家分:3
注 册:2015-11-25
得分:0 
回复 6楼 TonyDeng
明白了 谢谢
2016-01-26 00:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-461332-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.248761 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved