求解我的是32位的计算机只能输8位16进制的

MayCarry 2011-11-10 11:30:46
Description

进制转换是计算机文化的基础内容。
使用程序将进制进行转换,可以考查你对进制转换的掌握程度。
将一个任意位数的十进制数转换为十六进制数你能够做到吗?

Input

首先是一个正整数n(n<100)表明本题有n个正整数需要转换。
然后是n行数据,每行表示一个待转换的正整数k(0〈K〈10000000000)。

Output

输出n个转换后的十六进制数。(使用大写A~F)
每行输出1个。

Sample Input


6
5
12
34000
555555
12344321
9999999999


Sample Output


5
C
84D0
87A23
BC5C01
2540BE3FF

Hint

注意:
本题的K的取值范围
做过后输9999999999出来的结果是540BE3EF 不是2540BE3FF怎么办
希望有能给个简单的方法解决 本人新手
...全文
93 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
pathuang68 2011-11-11
  • 打赏
  • 举报
回复
参考下面的代码,可以成功转换9999999999

#include <iostream>
using namespace std;

int main()
{
static char b[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
int c[32];
long long n; // 此处声明为long long,可以容纳64bit的大整数
int d,i=0,base = 16;
cout<<"Enter a number in decimal:\n";
cin>>n;
do
{
c[i]=n%base;
i++;
n=n/base;
} while (n!=0);
cout<<"The result in hexadecimal:\n";
for (--i;i>=0;--i)
{
d=c[i];
cout<<b[d];
}
cout<<"\n";

return 0;
}
孤独小剑 2011-11-10
  • 打赏
  • 举报
回复
貌似这题谁贴出来过,作业题么?

70,037

社区成员

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

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