我们处理的整数通常用十进制表示,在计算机内存中是以二进制补码形式存储,但通常二进制表示的整数比较长,为了便于在程序设计过程中理解和处理数据,通常采用八进制和十六进制,缩短了二进制补码表示的整数,但保持了二进制数的表达特点。请输出十进制整数1234对应的八进制和十六进制。
我们处理的整数通常用十进制表示,在计算机内存中是以二进制补码形式存储,但通常二进制表示的整数比较长,为了便于在程序设计过程中理解和处理数据,通常采用八进制和十六进制,缩短了二进制补码表示的整数,但保持了二进制数的表达特点。请输出十进制整数1234对应的八进制和十六进制。
无
十进制整数1234对应的八进制和十六进制(字母大写),用空格分开,并且要求,在八进制前显示前导0,在十六进制数前显示前导0X。
printf可以使用使用格式控制串“%o”、“%X”分别输出八进制整数和十六进制整数,并使用修饰符“#”控制前导显示
num = 1234
# print(oct(num))
# print(hex(num))
def octcreate(num,jing,pre):
result = ''
dicts = {10:"A",11:"B" ,12:"C" ,13:"D",14:"E",15:"F" }
while num:
if 9 < num < jing:
result = dicts[num] + result
return pre+str(result)
elif num <jing:
result = str(num) + result
return pre+str(result)
tes = num%jing
if 9 < tes < jing:
result = dicts[tes] + result
elif tes <jing:
result = str(tes) + result
num = num//jing
print(octcreate(num,8,'0'),end=" ")
print(octcreate(num,16,'0X'),end=" ")