题目:编程输入任意十进制数N(N:-32767~32767),请输出它对应的二进制、八进制、十六进制;
(注意,当数值超过十之后,就用字母A、B、C……来代替)
比如十六进制数:A1F,代表它最低位是F,也就是15,第二位是1,最高位是A,也就是10
转换成10进制就是10*16*16+1*16+15=2597。
输入 一个数N
输出
对应的二进制、八进制、十六进制;每个一行
j
样例
样例输入1
4
样例输出1
100
4
4
#include<bits/stdc++.h>
using namespace std;
void toBinary(int n)
{
int ans = n, i = 0;
int a[40] = {0};
while (ans != 0)
{
int b = ans % 2;
ans = ans / 2;
a[i++] = b;
}
for (int j = i - 1; j >= 0; j--)
printf("%d", a[j]);
printf("\n");
}
void toOctal(int n)
{
int a[40] = {0}, i = 0;
while (n != 0)
{
int o = n % 8;
n = n / 8;
a[i++] = o;
}
for (int j = i-1; j >=0; j--)
printf("%d", a[j]);
printf("\n");
}
void toHexadecimal(int n)
{
char a[40] = {0};
int i = 0;
while (n != 0)
{
int h = n % 16;
if (h < 10)
a[i++] = '0' + h;
else a[i++] = 'A' + (h - 10);
n = n / 16;
}
for (int j = i - 1; j >= 0; j--)
printf("%c", a[j]);
printf("\n");
}
int main()
{
long long n;
cin>>n;
toBinary(n);
toOctal(n);
toHexadecimal(n);
return 0;
}