本文共 1829 字,大约阅读时间需要 6 分钟。
给定N个整数,对于每个整数M,输出它的二进制、八进制和十六进制表示形式。二进制表示必须以'B'结尾,八进制表示必须以'0'开头,十六进制表示必须以'H'结尾。输出每种进制表示之间用空格分隔。
输入部分包含一个整数N(1 ≤ N ≤ 100),接下来的N行每行一个整数M(1 ≤ M ≤ 1,000,000)。
示例输入:1234
示例输出:11101010B0352eaH
实现方法:
fun,用于将给定的整数转换为指定进制的字符串。fun函数生成二进制、八进制和十六进制字符串,并按照指定的格式输出。代码解释:
fun函数用于将整数m转换为指定进制的字符串。main读取输入并循环处理每个整数m。fun函数并将结果字符串追加'B'。fun函数并在结果字符串前追加'0'。fun函数并在结果字符串后追加'H'。代码实现:
#includechar s[1000000];int s1[1000000];int fun(int n, int m) { int i = 0; if (m == 0) return 0; while (m) { s[i] = m % 10 + 48; m /= 10; i++; } return i;}int main() { int t, i, m, a, j, b; scanf("%d", &t); for (i = 0; i < t; i++) { scanf("%d", &m); // 二进制转换 a = fun(2, m); for (j = a - 1; j >= 0; j--) { printf("%c", s[j]); } printf("B "); // 八进制转换 a = fun(8, m); printf("0"); for (j = a - 1; j >= 0; j--) { printf("%c", s[j]); } printf(" "); // 十六进制转换 i = 0; while (m) { s1[i] = m % 16; m /= 16; i++; } for (j = i - 1; j >= 0; j--) { if (s1[j] < 10) { printf("%d", s1[j]); } else { switch (s1[j]) { case 10: printf("a"); break; case 11: printf("b"); break; case 12: printf("c"); break; case 13: printf("d"); break; case 14: printf("e"); break; case 15: printf("f"); break; } } } printf("H\n"); } return 0;}
代码功能解释:
fun函数用于将整数转换为指定进制的字符串。main读取输入并处理每个整数m。转载地址:http://caefk.baihongyu.com/