十进制-十六进制
Description
把十进制整数转换为十六进制,格式为0x开头,10~15由大写字母A~F表示。
Input
每行一个整数x,0<= x <= 2^31。
Output
每行输出对应的八位十六进制整数,包括前导0。
Sample Input
0 1023
Sample Output
0x00000000 0x000003FF
题意:数字范围在int内,进制转换,简单的连续取余而已。记得中学的时候就会转换进制了。这里只要注意题目要求就ok咯。
注意输出要求哦。
#include<iostream>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
int i;
char a[8]; //要输出对应的八位十六进制整数
for(i=0;i<8;i++)
{
a[i]='0'; //先置零
}
for(i=7;i>=0;i--) //先取余得到的数,放在最后
{
if(n==0) //n==0,运算结束
break;
if(n%16<10)
{
a[i]='0'+n%16;
n/=16;
}
else
{
a[i]='A'+(n%16-10);
n/=16; //进制转换,以字母代替10~15
}
}
printf("0x"); //输出的要求
for(i=0;i<8;i++)
printf("%c",a[i]);
cout<<endl;
}
return 0;
}