内容正文:
浙江良品图书有限公司
精彩三年学考尖峰 信息技术 2022浙江
专题梳理7 进制转换的实现
单击此处编辑母版文本样式
1
【必修1 第38—94页 指导意见第13—19页】
1.进制概念
进制是一种记数方式,亦称为进位计数法或位值计数法。通过该计数法,可以使用有限种数字符号来表示所有的数值。任何一种数制都包含两个基本要素:基和权。基,又称为基数,是组成该数制的数码个数;权,又称为权值,是指每一个数位上的1对应的数值,可以表示为基数的若干次幂。
单击此处编辑母版文本样式
2.十进制转k进制程序代码
单击此处编辑母版文本样式
3.二进制转十进制程序代码
单击此处编辑母版文本样式
单击此处编辑母版文本样式
以上程序通过对正向索引下标实现循环遍历,若修改为负数索引,程序代码该如何改变?
4. 十六进制转十进制程序代码
单击此处编辑母版文本样式
单击此处编辑母版文本样式
5.二进制转十六进制代码
单击此处编辑母版文本样式
典例1 键盘输入十进制数,将其转换为二进制数后,输出。现Python程序段如下:
s=”
x=int(input())
while x>0:
print(s)
方框中的代码由以下三部分组成:
单击此处编辑母版文本样式
① x=x∥2 ②s=str(t)+s ③t=x%2
代码的正确顺序为( )
A.②①③ B.①③②
C.③②① D.①②③
解析 十进制数转换成二进制数的方法是除2倒取余数。在循环体中不断取余,倒序拼接,整除2。
C
单击此处编辑母版文本样式
典例2有如下Python程序段:
import random
x=int(random.random()*9)*2+10
s=”
while x>0:
y=x%5
s=str(y)+s
x=x∥5
print(s)
单击此处编辑母版文本样式
执行程序后,输出的变量s不可能是( )
A.20 B.31
C.34 D.101
解析 该程序实现将十进制数转换为五进制数。其中输入的十进制数为[10,26]的偶数,A选项转换为十进制数为10;B选项转换为十进制数为16;C选项转换为十进制数为19,不符合随机数产生范围;D选项转换为十进制数为26。
C
单击此处编辑母版文本样式
典例3有如下Python程序段:
s='1B2';ans=0;n=len(s)
for i in s:
if '0'<=i<='9':
ans=ans*16+int(i)
if 'A'<=i<='F':
ans=ans*16+ord(i)-55
print(ans)
该程序执行后,输出的结果为( )
B
单击此处编辑母版文本样式
A.428 B.434
C.439 D.450
解析 该程序实现十六进制数转换为十进制数。'1B2'=2×1+11×16+1×256=434。
单击此处编辑母版文本样式
典例4有如下Python程序段:
s=input()
ans=0
for i in s:
ans=ans*2+int(i)
print(ans)
若程序运行后,输出的结果为38,则对应输入的数值为( )
A.100110 B.2022 C.45 D.19
A
单击此处编辑母版文本样式
解析 该程序以移位、累乘相加的方法实现二进制转换为十进制数。结合输出数值为38,即问题求取的是38对应的二进制数。
单击此处编辑母版文本样式
典例5现有如下Python程序段,实现如下功能:键盘输入十进制数后,对应输出二、八、十六进制数。运行效果如下图所示。
请在画线处填入合适的代码:
def chg10(n,m):
x='0123456789ABCDEF'
temp=”
k=n
while①________:
p=k%m
k>0
单击此处编辑母版文本样式
temp=②_________________
k∥=m
return temp
a=int(input('请输入待转换的数:'))
print('转换为二进制数:',chg10(a,2))
print('转换为八进制数:',③________________)
print('转换为十六进制数:',chg10(a,16))
解析 该程序通过调用进制转换函数chg10(n,m),来实现相应数值转换。其中自定义函数通过除m倒取余数的方法实现进制转换。
x[p]+temp
chg10(a,8)
单击此处编辑母版文本样式
典例6小名编写了二进制数转换为十六进制数的Python程序。输入二进制数,对应输出十六进制数,程序运