1256: 【入门】正整数n转换为16进制(1289)
内存限制:16 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:10
解决:6
题目描述
请从键盘读入一个非负整数n(n是一个不超过18位的正整数),将n转换为16进制!
注意:16进制即逢16进1,每一位上可以是从小到大为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F共16个大小不同的数,即逢16进1,其中用A,B,C,D,E,F这六个字母来分别表示10,11,12,13,14,15。
如:60的十六进制为3C。(字母请用大写)
输入
一个不超过18位的非负整数n
输出
该数的十六进制值
样例输入 复制
100000000000
样例输出 复制
174876E800
提示
#include<bits/stdc++.h> using namespace std; long long n,x; string s; char c; int main(){ cin>>n; while(n!=0){ x=n%16; //cout<<x<<endl; //将x转换为字符逆序存入字符串s //x:0~9 -> '0'~'9' //x:10-15 -> 'A'~'F' if(x<10){ c=x+'0'; }else{ c=x-10+'A'; } s=c+s; n=n/16; } if(s==""){ cout<<0; }else{ cout<<s; } return 0; }
#include<bits/stdc++.h> using namespace std; long long n,x; /* n是一个不超过18位的正整数 */ string s; string t="0123456789ABCDEF"; int main(){ cin>>n; while(n!=0){ x=n%16; //cout<<x<<endl; //将x转换为字符逆序存入字符串s //x:0~9 -> '0'~'9' //x:10-15 -> 'A'~'F' s=t[x]+s; n=n/16; } if(s==""){ cout<<0; }else{ cout<<s; } return 0; }