发布网友 发布时间:2022-04-26 10:29
共2个回答
热心网友 时间:2022-06-27 09:39
1、十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。
2、输入格式 ,输入包含一个非负整数a,表示要转换的数。0<=a<=2147483647。
3、输出格式,输出这个整数的16进制表示。
4、样例输出 ,1E:
#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
int main() {
__int64 shi;scanf("%I64d",&shi);
if (shi<=15) {
string ans="";
if (shi<10)
ans += shi+'0';
else
ans += shi-10+'A';
for (int i=ans.length()-1; i>=0; i--)
cout<<ans[i];
}
else {
string ans="";
do {
int tmp = shi%16;
if (tmp<10)
ans += tmp+'0';
else
ans += tmp-10+'A';
shi /= 16;
} while (shi>=16);
if (shi<10)
ans += shi+'0';
else
ans += shi-10+'A';
for (int i=ans.length()-1; i>=0; i--)
cout<<ans[i];
}
return 0;
}
扩展资料
十六进制转换为十进制
十六进制数转十进制数方法:十六进制数按权展开,从十六进制数的右边第一个数开始,每一个乘以16的n次方,n从0开始,每次递增1。然后得出来的每个数相加即是十进制数。
参考资料来源:百度百科—十六进制转换
热心网友 时间:2022-06-27 09:39
我觉得最简单的方法是直接转16进制:
1610/16=100……10(A);
100 /16= 6……4;
6 /16= 0……6;
故:1610(10)=64A(16)
因此,只需要把每次的余数保留就是得到的结果,一直除到商为0。
要把1610转换成16进制,代码如下: