我们处理的整数通常用十进制表示,在计算机内存中是以二进制补码形式存储,但通常二进制表示的整数比较长,为了便于在程序设计过程中理解和处理数据,通常采用八进制和十六进制,缩短了二进制补码表示的整数,但保持了二进制数的表达特点。请输出十进制整数1234对应的八进制和十六进制。
我们处理的整数通常用十进制表示,在计算机内存中是以二进制补码形式存储,但通常二进制表示的整数比较长,为了便于在程序设计过程中理解和处理数据,通常采用八进制和十六进制,缩短了二进制补码表示的整数,但保持了二进制数的表达特点。请输出十进制整数1234对应的八进制和十六进制。
无
十进制整数1234对应的八进制和十六进制(字母大写),用空格分开,并且要求,在八进制前显示前导0,在十六进制数前显示前导0X。
printf可以使用使用格式控制串“%o”、“%X”分别输出八进制整数和十六进制整数,并使用修饰符“#”控制前导显示
//补充知识点 //%d 十进制 //%o 八进制 //%x 十六进制 //如所需进制需加前导 //则将%变为%o #include <stdio.h> int main (void) { int i = 1234; printf("%#o %#X",i, i); return 0; }
#include<math.h> #include<stdio.h> int i = 0; void dec(int n, int a[]) { int j = 0; if (n > 0) { dec(n / 2, a); } a[i] = n % 2; i++; //printf("%d", n % 2); } void eight(int b[][3]) { int i = 0; int j = 0; int sum[4] = { 0 }; for (i = 0; i < 4; i++) { for (j = 0; j < 3; j++) { sum[i] += b[i][j] * pow(2, 2 - j); } } printf("0"); for (i = 0; i < 4; i++) { printf("%d", sum[i]); } } void sixteen(int c[][4]) { int i = 0; int j = 0; int sum[3] = { 0 }; for (i = 0; i < 3; i++) { for (j = 0; j < 4; j++) { sum[i] += c[i][j] * pow(2, 3 - j); } } printf(" 0X"); for (i = 0; i < 3; i++) { printf("%X", sum[i]); } } int main() { int a[100] = { 0 };//a[]数组中存放余数 int j = 0; int n = 0; dec(1234, a); int b[4][3] = { a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11] }; int c[3][4] = { a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11] }; /*for (j = 0; j < i; j++) { printf("%d", a[j]); }*/ eight(b); sixteen(c); return 0; }我可真是个大聪明。。。