内容正文:
2023-2024学年高一上学期必修一1.2 数字化与编码
一、选择题
1.下列将二进制数1011B转换成十进制数的算式中,正确的是( )
A.1×23+1×22+0×21+1×20 B.1×23+0×22+1×21+1×20
C.1×23+1×22+1×21+0×20 D.1×23+1×22+1×21+1×20
2.某幼儿园的绘画创新课上,美术教师让小班的学生在如图1所示的空格系列中用黑色的蜡笔任意涂满空格(涂的格数和位置均不限制,也可一个不涂),则涂成如图2所示情况的概率是( )
A.1/32 B.1/16 C.1/8 D.1/64
3.下列说法中正确的是()。
A.信号是数据的编码 B.信号是数据的内容和解释
C.信号是指两地间传输数据信号的通路 D.信道是数据的电编码
4.若在十六进制整数A1右边添加1个0形成一个新数,则新数的值是原数值的( )。
A.256倍 B.10倍 C.4倍 D.16倍
5.算术10D+101B的运算结果是( )
A.111B B.111D C.1111B D.1111D
6.下列不属于字符编码的是( )
A.ASCII B.GB2312 C.JPEG D.Unicode
7.下列不是汉字输入法的是( )
A.全拼 B.五笔字型 C.ASCII码 D.双拼
8.采样频率和量化位数是数字音频的两项基本指标,下列叙述正确的是( )
A.44.1kHz表示量化位数 B.16位表示量化位数
C.采样频率相同,量化位数越少音频质量越高 D.量化位数相同,采样频率越低音频质量越高
9.标准的ASCII码为( )位二进制编码。
A.8位 B.16位 C.32位 D.7位
10.使用 UltraEdit 软件观察字符的内码界面如下图所示,下列说法正确的是( )
A.“D1 A1”是“选”字在计算机内存储和处理时的交换码
B.VB 中表达式“考”>“加”输出结果为 True
C.字符“10”的十六进制码是“3A”
D.共有 5 个 ASCII 字符
11.下列关于数字化说法正确的是( )
A.信息可以用模拟信号表达,也可以用数字信号表达
B.模拟信号可以不需要数字化就可以被计算机直接使用
C.从模拟信号到数字信号转换的主要设备是数模转换器(D/A)
D.将数字信号转换为模拟信号的过程称为数字化
12.小王用 UltraEdit 软件观察“word 文档”这几个字,显示的十六进制内码如下图所示,从中可以看出汉字“文”的内码是( )。
00000000h:77 6F 72 64 CE C4 B5 B5 word 文档
A.CE B.C4 C.CEC4 D.C4B5
13.汉字的输出码可以用点阵方式来表示,如目前汉字在显示器上显示的就是点阵汉字。那么48 X 48点阵的一个汉字要用( )字节来表示.
A.256
B.128
C.288
D.96
14.表示汉字的机内码为两个字节,每个字节的最高位为( )
A.0 B.1 C.2 D.3
15.下列有关数制的说法,正确的是( )
A.计算机内部二进制表示较大数时位数太长,可以用十六进制数方式进行存储和处理
B.古代1斤为16两,“半斤八两”体现了八进制数的思维方式
C.两位十六进制正整数,末位是“9”,转换为十进制数,最大值是249D
D.将某十六进制数末尾添加一个数“1”,等价于将该数转换为二进制数后末尾添加“1111”
二、填空题
16.101101(2)=( )(10) 100(10)=( )(2)
17.二进制数的(111011011.011)转化为十进制数为 。
18.将原始的BMP格式图片批量转换为JPEG格式图片,作为训练手写数字识别模型的数据集。转换后的图片占用的存储空间变小,这种数据压缩方式属于 (选填:无损压缩/有损压缩)。
19.进制转换
(1)53D= B= H
(2)C5H= B= D
(3)10H+16D= B
(4)(43)10=( )8, (143)8=( )10
20.将下列十进制数转换成二进制数(写出计算过程)
(1)55 (2)93.25
三、操作题
21.小张同学已经学会了整数十进制转换为二进制的方法:“除2取余,逆序排列”法。通过查找资料得知,十进制小数转换成二进制小数采用“乘2取整,顺序排列”法。具体做法是:用2乘十进制小数部分,得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止,即“乘2取整,顺序排列”法。小张同学编写了VB程序,程序运行界面如图所示,在文本框Text1中输入一个带小数的正十进制数(小于32767),点击“进制转换”按钮Command1,在文本框Text2中输出转化后的带小数的二进制数,精确到4位小数。实现上述功能的VB程序如图,请回答下列问题:
⑴按照本程序的功能,在Text1中输入数据4.125,点击“进制转换”按钮Command1,在Text2中显示的内容是 。
⑵请在画线处填入合适的代码:
Private Sub Command1_Click()
Dim s As String, s1 As Integer, s2 As
Single
Dim result As String
Dim temp As Integer, i As Integer, k As
Integer
s = Text1.Text
'输入数据是否符合要求,不符合重新输入,代码略
For i = 1 To Len(s)
ch = Mid(s, i, 1)
If ch = "." Then
s1 = Val(Mid(s, 1, i - 1)) 's1表示整数部分
s2 = 's2表示小数部分
Exit For '退出循环
End If
Next i
'整数部分s1转化为二进制
result = ""
Do While s1 <> 0
temp = s1 Mod 2
s1 = s1 \ 2
result = temp & result
Loop
result = result & "."
'小数部分s2转化为二进制,最多保留4位小数
k = 1
Do While s2 <> 0 And k<=4
temp = Int(s2 * 2)
s2 =
result = result & temp
k = k + 1
Loop
Text2.Text = result
End Sub
22.GeoHash 是空间索引的一种方式,其基本原理是将地球理解为一个二维平面,通过把二维的空间经纬度数据编码为一个字符串,可以把平面递归分解成更小的子块,每个子块在一定经纬度范围内拥有相同的编码。以经纬度为(121.43737,31.192932)为例。
第一步:将经纬度转换为二进制
编码规则为:先将纬度范围(-90, 90)平分成两个区间(-90, 0)和(0, 90),如果目标维度位于前一个区间,则编码为 0,否则编码为 1,然后根据目标纬度所落的区间再平均分成两个区间进行编码,以此类推,直到精度满足要求,经度也用同样的算法。
4
(22.5, 45.0)
(22.5, 33.75)
(33.75, 45.0)
0
5
(22.5, 33.75)
(22.5, 28.125)
(28.125, 33.75)
1
……
……
……
……
……
最后得到纬度的二进制编码为:101011000101110, 用同样的方式可以得到经度(121.43737)的二进制编码:110101100101101
第二步:将经纬度的二进制编码合并,从偶数 0 开始,经度占偶数位,纬度占奇数位。经度
110101100101101,纬度 101011000101110,得到的二进制编码为:111001100111100000110011110110
偶
奇
偶
奇
偶
奇
偶
奇
偶
奇
偶
奇
…
偶
奇
偶
奇
偶
奇
偶
奇
偶
奇
索引
0
1
2
3
4
5
6
7
8
9
10
11
…
12
21
22
23
24
25
26
27
28
29
经纬度
1
1
1
0
0
1
1
0
0
1
1
1
…
0
0
1
1
1
1
0
1
1
0
第三步:将合并后的二进制数做 Base32 编码
按照每 5 位一组,分成 6 组,每组计算其对应的十进制数值,按照 Base32 表进行编码。
11100 11001 11100 00011 00111 10110 转换成十进制是 28 25 28 3 7 22,查表编码得到最终结果,wtw37q。
林老师想编写一个 Python 程序,输入编码后的字符串,输出该编码对应的经纬度范围,运行结果如图 a 所示:
图a
(1)Python 程序如下,请在划线处完成填空。
def qj(l,r,a):#将二进制 a 转成对应的经纬度范围#该代码省略
def find(c):#在 base32 表中查找对应的十进制数
for i in ① :
if base32[i]==c:
return i
base32="0123456789bcdefghjkmnpqrstuvwxyz"
s=input("请输入编码:")
res=""
jd=[]
wd=[]
for i in range(len(s)):
②
ans=""
j=0
while③ :
ans=④
n=n//2
j+=1
res=res+ans
for i in range(len(res)):
if i%2==0:
jd+=res[i]
else:
wd+=res[i]
print("经度对应的二进制:",jd,"纬度对应的二进制:",wd)
print("经度范围:",qj(-180,180,jd),"纬度范围:",qj(-90,90,wd))
(2)若经纬度编码是 wm3,那么对应的经度二进制是 。
四、简答题
23.数据压缩
RLE(Run-Length Encoding,行程长度编码)是一种编码方式,也是一种简单的无损压缩法,压缩和解压缩效率高。
RLE压缩法:利用控制字节的最高位来标识是否进行了压缩。当最高位为1时,则后面7位表示的是数据的重复次数;当最高位为0时,则后面7个位的数是被压缩的数据。
例如,如果有15个十六进制数都是30,那么,压缩后的编码为8F30。
识别说明:十六进制数8F转换为二进制是1000111,最高位是1,后面的7位0001111表示的是字节的重复次数15;十六进制数30转换为二进制是00110000,最高位是0,30是被重复的数据。采取这种方法,一个字符只有重复两次以上,才能被压缩。即使一个数据只重复3次,也可以获得30%的压缩比。
(1)如果经过RLE压缩方法压缩后的数据为8A6F,那么解压缩前的数据是什么?
(2)根据RLE压缩方法,下列字符数据经过压缩后的数据是什么?
20,30,30,30,35,35,……,35,64。其中,十六进制数30共有3个,35共有60个。
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.B
2.A
3.A
4.D
5.C
6.C
7.C
8.B
9.D
10.B
11.A
12.C
13.C
14.B
15.C
16. 45 110 0100
17.475.375
18.有损压缩
19. 110101 35 11000101 197 100000 53 99
20.(1)110111B (2) 1011101.01B
21. 100.001 Val(“0.” + mid(s, i + 1, len(s) – i))
或Val(“0.” & mid(s, i + 1, len(s) – i)) 或Val(“0” + mid(s, i , len(s) – i+1))
或Val(“0” & mid(s, i , len(s) – i+1)) 或其他等同表达式 s2 * 2 – temp
22. range(0,len(base32))或 range(len(base32))或 range(0,32)或 range(32) n=find(s[i]) j<5或n>0 or j<5 str(n%2)+ans 11001001
23.答:(1)8A二进制是1000 1010 所以重复10次,重复内容是十六进制的6F。
那么压缩前的数据是:6F, 6F, 6F, 6F, 6F, 6F, 6F, 6F, 6F, 6F。
(2)重复3次二进制是0000 0011,最高位置1以后就是1000 0011即83,重复内容是十六进制30 ,所以压缩后的数据为83 30。
重复60次二进制是0011 1100,最高位置1以后就是1011 1100即BC,重复内容是十六进制35 ,所以压缩后的数据为BC 35。
那么最后压缩数据为:20, 83 30, BC 35,64。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$