关于十六进制字符串转换成十进制数字的问题!在线求解答

scollfild 2011-09-19 09:12:15
就是有一十六进制的字符串,很大,比如说“0x5DB7BABAEC98DECAABBEEFFCCBBAA”,就是任何数据类型都装不下它(包括double等),我想转换成10进制的数字,比如假设转换成“8965043074093821087064.....”就是很长的,请教怎样才能输出来?
...全文
350 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzhaohua38 2011-09-20
  • 打赏
  • 举报
回复
新手不懂的,路过。
scollfild 2011-09-20
  • 打赏
  • 举报
回复
多谢各位,另外zhaopeng2511能否说下multiply和plus函数的具体算法,或者添加下注释。。
scollfild 2011-09-19
  • 打赏
  • 举报
回复
看了网上的不大懂啊,恳请各位高人能贴出源码,不生感激:比如输入“0x8888999900ABCDEF000001231234567800000AAB1254FDAB”,输出对应的10进制数字
relaxisland 2011-09-19
  • 打赏
  • 举报
回复
http://blog.csdn.net/hairetz/article/details/6310477
relaxisland 2011-09-19
  • 打赏
  • 举报
回复
其实问题也没那么难吧,就是实现比较花时间
包含2个问题:
1 进制转换,前面有人提供代码了,可以参考
2 就是 大数乘法,
就是上面机制转换中的n=n*16
最一般的做法,就是参照小学学的笔算,从个位,十位分别从乘法,然后再相加
当然还需要一个东西来保持进位数
小类人猿 2011-09-19
  • 打赏
  • 举报
回复
楼主我想到了一个思路
你先把十六进制的数转换成2进制的字符串,然后把二进制的字符串转换成十进制的字符
scollfild 2011-09-19
  • 打赏
  • 举报
回复
还有么有人帮忙啊~~~ 想头疼了
小类人猿 2011-09-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wyhllk 的回复:]

这个程序可以让2到16进制的数转换成10进制的数
#include"stdio.h"
main()
{char s[17];
int d,i;
long n=0;
printf("请输入进制数:");
scanf("%d",&d);
getchar();
printf("请输入该进制的一个数:");
gets(s);
for(i=0;s[i];i++)
if(s[……
这个程序解决不了楼主的问题,只能算小的数
小类人猿 2011-09-19
  • 打赏
  • 举报
回复
这个程序可以让2到16进制的数转换成10进制的数
#include"stdio.h"
main()
{char s[17];
int d,i;
long n=0;
printf("请输入进制数:");
scanf("%d",&d);
getchar();
printf("请输入该进制的一个数:");
gets(s);
for(i=0;s[i];i++)
if(s[i]<='9')n=n*d+s[i]-'0';
else if(s[i]<='F')n=n*d+s[i]-'A'+10;
else n=n*d+s[i]-'a'+10;
printf("%ld\n",n);
}
阿尼小码 2011-09-19
  • 打赏
  • 举报
回复
用个数组搞定
scollfild 2011-09-19
  • 打赏
  • 举报
回复
高手们具体点,贴个源码吧,就用我上边的字符串转换就成~~~
Gloveing 2011-09-19
  • 打赏
  • 举报
回复
存在一个 char数组中
mengmingtao 2011-09-19
  • 打赏
  • 举报
回复
google 大数运算。
网上有很多现成库的。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧