我们处理的整数通常用十进制表示,在计算机内存中是以二进制补码形式存储,但通常二进制表示的整数比较长,为了便于在程序设计过程中理解和处理数据,通常采用八进制和十六进制,缩短了二进制补码表示的整数,但保持了二进制数的表达特点。请输出十进制整数1234对应的八进制和十六进制。
我们处理的整数通常用十进制表示,在计算机内存中是以二进制补码形式存储,但通常二进制表示的整数比较长,为了便于在程序设计过程中理解和处理数据,通常采用八进制和十六进制,缩短了二进制补码表示的整数,但保持了二进制数的表达特点。请输出十进制整数1234对应的八进制和十六进制。
无
十进制整数1234对应的八进制和十六进制(字母大写),用空格分开,并且要求,在八进制前显示前导0,在十六进制数前显示前导0X。
printf可以使用使用格式控制串“%o”、“%X”分别输出八进制整数和十六进制整数,并使用修饰符“#”控制前导显示
print('{} {}'.format(oct(1234).replace('o',''),hex(1234).upper())嘻嘻😁
//补充知识点 //%d 十进制 //%o 八进制 //%x 十六进制 //如所需进制需加前导 //则将%变为%o #include <stdio.h> int main (void) { int i = 1234; printf("%#o %#X",i, i); return 0; }
//为了题目输出所编写一次输出八 和 十六进制 //这个代码只要读懂小小改动,可实现任意进制。 #include<stdio.h> #include<math.h> #define NUM 1234 //输入大于0的正整数 int main(void) { int i=0;//控制循环 int j=0;//控制循环 int sum=0;//求和 int ture=0;//消除八和十六进制多余的0 int index=0;//控制指数 char arr[10];//存放求和 for(i=0;i<2;i++) { for(j=0;j<=32;j++,index++) { if(j%(i+3)==0&&index!=0) { arr[8-(j/(i+3))]=sum; sum=0; index=0; } sum+=((NUM>>j)&1)*((int)pow(2,index)); } if(i!=0) printf(" "); for(j=0;j<8;j++) { if(arr[j]||ture) { if(!ture) i==0?printf("0"):printf("0X"); arr[j]<9?printf("%c",arr[j]+48):printf("%c",arr[j]+55); ture=1; } } ture=0; } } 哈哈秒杀