A40161. 二进制数转十六进制数, 可以先采用“按权展开, 逐项相加”法, 把二进制转十进制; 再采用“除请完善以下程序代码。st="0123456789ABCDEF"num = input("请输入一个二进制整数:")n =___①___s=0ss=""for i in range(n): x= ___②___ s+=xt=swhile t>0: ss=___③___ t=___④___print(ss)
填空题
困难
知识点
题目描述
二进制数转十六进制数, 可以先采用“按权展开, 逐项相加”法, 把二进制转十进制; 再采用“除
请完善以下程序代码。
st="0123456789ABCDEF"
num = input("请输入一个二进制整数:")
n =___①___
s=0
ss=""
for i in range(n):
x= ___②___
s+=x
t=s
while t>0:
ss=___③___
t=___④___
print(ss)
参考答案
st="0123456789ABCDEF"
num = input("请输入一个二进制整数:")
n = len(num)
s=0
ss=""
for i in range(n):
x=int(num[i])*2**(n-i-1)
s+=x
t=s
while t>0:
ss=st[t%16]+ss
t=t//16
print(ss)答案解析
评分标准:
① len(num); (3 分)
② int(num[i])*2**(n-i-1); (3分)
③ st[t%16]+ss; (2 分)
④ t//16。 (2 分)
上一题
下一题