测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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 分)

上一题 下一题