BC17 缩短二进制
描述
我们处理的整数通常用十进制表示,在计算机内存中是以二进制补码形式存储,但通常二进制表示的整数比较长,为了便于在程序设计过程中理解和处理数据,通常采用八进制和十六进制,缩短了二进制补码表示的整数进制补码表示的整数,但保持了二进制数的表达特点。请输出十进制整数1234对应的八进制和十六进制。
输入描述:
无
输出描述:
十进制整数1234对应的八进制和十六进制(字母大写),用空格分开,并且要求,在八进制前显示前导0,在十六进制数前显示前导0X。
备注:
printf可以使用使用格式控制串“%o”、“%X”分别输出八进制整数和十六进制整数,并使用修饰符“#”控制前导显示
知识补充:
d 以十进制形式输出带符号整数(正数不输出符号)
o 以八进制形式输出无符号整数(不输出前缀O)
x 以十六进制形式输出无符号整数(不输出前缀Ox)
X 以十六进制形式输出无符号整数(不输出前缀OX)
使用修饰符“#”控制前导显示:
# 对c,s,d,u类无影响;
对o类, 在输出时加前缀0
对x类,在输出时加前缀0x
注意:题目要求,十六进制,字母大写,所以,对X类,在输出时加前缀0X
解题思路:
#include <stdio.h>
int main() {
int a = 1234;
printf("%#o %#X", a, a);
return 0;
}
输出结果与计算器结果无异