4数制转换信息技术选考.docx
- 文档编号:11319337
- 上传时间:2023-02-26
- 格式:DOCX
- 页数:33
- 大小:221.02KB
4数制转换信息技术选考.docx
《4数制转换信息技术选考.docx》由会员分享,可在线阅读,更多相关《4数制转换信息技术选考.docx(33页珍藏版)》请在冰豆网上搜索。
4数制转换信息技术选考
1.(2019·1月浙江学考)小红编写了一个将5位以内的十六进制正整数转化成十进制数的VB程序,功能如下:
在文本框Text1中输入一个十六进制正整数,单击“转换”按钮Command1,在标签Label3中显示结果。
程序运行界面如图所示。
(1)要使窗体Form1标题显示“数制转换”,则需该窗体的______(单选,填字母:
A.Font/B.Caption/C.BackColor)属性。
(2)要实现上述功能的VB程序如下,请在划线处填入合适的代码。
PrivateSubCommand1_Click()
DimxAsString,chAsString
DimflagAsBoolean,iAsInteger,resultAsLong
x=______①____
i=1
result=0
flag=True
ch=Mid(x,1,1)
DoWhilei<=Len(x)Andflag=True
Ifch>=”0”Andch<=”9”Then
result=result*16+Val(ch)
ElseIfch>=”A”Andch<=”F”Then
result=result*16+(Asc(ch)-Asc(”A”)+10)
ElseIfch>=”a”Andch<=”f”Then
result=result*16+(Asc(ch)-Asc(”a”)+10)
Else
flag=False
EndIf
i=i+1
ch=______②____
Loop
Ifflag=TrueThen
Label3.Caption=Str(result)
Else
Label3.Caption=”输入错误”
EndIf
EndSub
(3)若在文本框Text1中输入5+9,单击“转换”按钮后,标签Label3中显示的内容是________(单选,填字母:
A.14/B.E/C.输入错误)。
答案
(1)B
(2)①Text1.Text ②Mid(x,i,1) (3)C
2.(2018·4月浙江学考)某种编码以4位二进制码为一组,每组前两位表示方向,后两位表示距离。
编写一个程序,将编码翻译成方向和距离,距离值为每组编码后两位二进制码转换为十进制数的值。
具体功能如下:
在文本框Text1中输入连续多组编码,单击“翻译”按钮Command1,结果显示在列表框List1中。
程序运行界面如下图所示。
(1)要使程序运行时,文本框Text1的Width属性值为2018,可在Form_Load事件过程中添加语句________(单选,填字母:
A.Width=2018/B.Text1.Width=2018/C.Width.Text1=2018)。
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
PrivateSubCommand1_Click()
DimsAsString,cAsString,dAsString
DimnAsInteger,b1AsInteger,b2AsInteger,vAsInteger,iAsInteger
s=Text1.Text:
n=Len(s):
i=1
DoWhilei<=n
c=Mid(s,i,2)
Ifc=”00”Then
d=”东”
ElseIfc=”01”Then
d=”南”
ElseIfc=”10”Then
d=”西”
Else
d=”北”
EndIf
b1=Val(Mid(s,i+2,1))
b2=Val(Mid(s,i+3,1))
v=____①____
List1.AddItemd+””+Str(v)
___②____
Loop
EndSub
(3)若文本框Text1中输入的内容为“1111”,单击“翻译”按钮,列表框List1中显示的内容是________。
答案
(1)B
(2)①b1*2+b2 ②i=i+4 (3)北3
3.(2017·4月浙江选考)奇偶校验是一种校验数据传输正确性的方法。
其中奇校验方法:
统计二进制数据的数位中“1”的个数,若个数为奇数,则校验位值为0,否则校验位值为1。
小李编写了一个计算奇校验位值的VB程序,功能如下:
在文本框Text1中输入1~255十进制待校验数,单击“计算”按钮Command1后,在文本框Text2中显示该数对应的二进制值,并在标签Label3中显示该数的校验位值。
程序运行界面如图所示。
(1)在设计程序界面时,要清空文本框中的显示内容,应修改该文本框中的________属性。
(2)实现上述功能的VB程序如下,请在划线处填入合适代码。
PrivateSubCommand1_Click()
DimaAsInteger,sAsString
DimnAsInteger,tAsInteger,vAsInteger
n=Val(Text1.Text)
t=0
s=””
DoWhilen>0
a=nMod2
n=n\2
t=____①____
s=Str(a)+s
Loop
V=tMod2
Text2.Text=s
Label3.Caption=”校验位值”+____②____
EndSub
(3)运行该程序,在文本框Text1中输入22,单击“计算”按钮,则显示的校验位值是________。
答案
(1)Text
(2)①t+a ②str(1-v) (3)0
4.某数据加密方法描述如下:
1)以字节为单位进行加密处理;
2)将1个字节的8位二进制数分割成前4位与后4位两个二进制数;
3)分别将上述两个4位二进制数转换为十进制数;
4)将每个十进制数转换为1个加密字符,对应的“密码表”如下:
值(十进制)
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
加密字符
I
I
i
k
E
C
H
N
p
o
s
t
c
a
r
d
小明按照上述方法,设计了一个字符串(仅包含ASCII字符)加密的VB程序,功能如下:
单击“加密”按钮Command1,程序依次将文本框Text1中每个字符的ASCII码值作为1个字节转换为两个加密字符,连接这些加密字符,最后在文本框Text2中输出加密结果。
下表显示了字符串中一个字符的加密过程:
程序运行效果如图所示:
实现上述功能的VB程序如下:
(1)请在划线处填入合适代码。
PrivateSubCommand1_Click()
DimnAsInteger,sAsString,iAsInteger,ssAsString
DimaAsInteger′存储加密前字符的ASCII码
Dimb1AsInteger,b2AsInteger′分别存储分割、转换后的两个十进制数
s=Text1.Text
____①____
Fori=1Ton
a=Asc(Mid(s,i,1))
b1=a\16
b2=aMod16
ss=ss+Code2Char(b1)+Code2Char(b2)
Nexti
Text2.Text=ss
EndSub
′十进制值转换为加密字符的函数
FunctionCode2Char(cAsInteger)AsString
DimsAsString
s=”IlikeCHNpostcard”
Code2Char=____②____
EndFunction
(2)若将“密码表”中值为“0”对应的加密字符“I”改为“i”,加密后的密文可能无法解密,原因是_____________________________________________________。
答案
(1)①n=Len(s)或n=Len(Text1.Text)②Mid(s,c+1,1)
(2)加密字符i对应两个值0,2
5.用VB编写正整数十进制转换为十六进制的程序,运行界面如图所示。
程序功能如下:
在文本框Text1中输入待转换的十进制值,单击“十进制转换十六进制”按钮Command1,在文本框Text2中输出转换结果。
请在程序的划线处填写合适的代码。
【方法一】PrivateSubCommand1_Click()
DimaAsString,sAsString
DimrAsInteger,xAsInteger
x=Val(Text1.Text)
s=""
s1=“0123456789ABCDEF”
DoWhile____①____
r=xMod16
s2=Mid(s1,r+1,1)
____②____
x=x\16
Loop
Text2.Text=s
EndSub
【方法二】PrivateSubCommand1_Click()
DimaAsString,sAsString
DimrAsInteger,xAsInteger
x=Val(Text1.Text)
s=""
DoWhilex>0
____①____
Ifr>9Then
____②____
Else
s2=Trim(Str(r))′Trim函数的功能是去除字符两端的空格
EndIf
s=s2+s
x=x\'16
LoopEndSub
答案 【方法一】①x>0 或x<>0 ②s=s2+s
【方法二】①r=xMod16 ②s2=Chr(r+55)
6.小林为了将十进制数转化为k进制数(k介于2~16之间),设计如下界面程序:
在文本框Text1中输入一个十进制数,在文本框Text2中输入整数k(范围在2到16之间),单击“运行”按钮Command1,程序将十进制转化为k进制的,并在标签Label1中输出结果。
请回答下列问题:
(1)程序代码如下,请在划线处补充完整。
PrivateSubCommand1_Click()
d=Val(Text1.Text)
k=Val(Text2.Text)
s=” ”
DoWhiled>0
r=dModk
Ifr>=10Then
s2=Mid(”ABCDEF”,____①____,1)
Else
s2=Trim(Str(r))
EndIf
s=s2+s
____②____
Loop
Label1.Caption=”结果为”+s
EndSub
(2)运行该程序,在文本框Text1中输入“38”,文本框Text2中输入“2”,单击“运行”按钮,则Label1显示的内容为是__________。
答案
(1)①r-9 ②d=d\k
(2)100110
其他进制数向十进制数转换
1.如果是一位十六进制数字转十进制,分0-9和A-F两种情况,0-9的可以用Val函数进行转换,A-F字符可以用其内码减去55进行转换。
2.按权展开相加法。
从低位开始,把每一位上的数乘以该位数的权,把每次的乘积相加。
如(1011)2=1×20+1×21+0×22+1×23,38H=8×160+3×161=8+48=56D。
相应的代码是
Fori=Len(s)To1Step-1
t=Val(Mid(s,i,1)*2^(Len(s)-i))
n=n+t
Nexti
3.计算左边第1位值t,从第2位开始,把该数表示成前面的数左移一位(在后面添加1个0)。
如将二进制数1101B和十六进制数A1B2H转换成十进制数的过程,其中i表示每次读取的位置,ch表示每次读出的数字。
二进制数向十进制转换
十六进制数向十进制转换
i
Ch
t
i
ch
t
1
”1”
1B
1
”A”
AH
1
”1”
10B+1B
2
”1”
A0H+1H
0
”0”
11B+0B
3
”B”
A1H+BH
1
”1”
110B+1B
4
”2”
A1BH+2H
二进制数和十六进制数后面添加1个0,其值分别为原来的2和16倍。
相应的代码是
Fori=1ToLen(s)
ch=Mid(s,i,1)
Ifch>=”0”Andch<=”9”Then
t=Val(ch)
Else
t=Asc(ch)-55
EndIf
n=n*16+t
Nexti
7.RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各种各样的颜色。
RGB颜色分量的值通常采用十进制数表示,而Flash软件中颜色值采用十六进制数表示。
比如RGB(100,255,10)等价于十六进制颜色码#64FF0A,每个RGB颜色分量对应两位十六进制数。
颜色
R
G
B
十进制
100
255
10
十六进制
64
FF
0A
小杜编写一个十六进制颜色码转RGB颜色值的转换程序,程序功能如下:
程序运行时在文本框Text1输入一个十六进制颜色码,输入格式为:
“#”后面跟6位十六进数(其中字母均为大写)。
单击“转换”按钮Command1,在标签Label1上输出对应的RGB颜色值。
程序运行界面如下图所示。
实现上述功能的VB程序如下,请回答下列问题:
(1)程序运行时,在文本框Text1输入“#C50913”,则标签Label1上显示的内容是________。
(2)请在划线处填入合适的代码。
PrivateSubCommand1_Click()
DimsAsString,chAsString,ansAsString
DimiAsInteger,jAsInteger
Dima(1To3)AsInteger′分别用于存储RGB对应的3个十进制分量
s=Text1.Text
s=Mid(s,2,6)
Fori=1To3
a(i)=0
Nexti
Fori=1To6
j=(i+1)\2
ch=Mid(s,i,1)
a(j)=____①____
Nexti
Fori=1To3
ans=ans+Str(a(i))
Ifi<>3Thenans=ans+”,”
Nexti
ans=”RGB(”+ans+”)”
Label2.Caption=ans
EndSub
FunctionHtoD(xAsString)AsInteger′将一位十六进制数转十进制数
Ifx>=”0”Andx<=”9”Then
HtoD=Val(x)
Else
____②____
EndIf
EndFunction
答案
(1)RGB(197,9,19)
(2)①a(j)*16+HtoD(ch) ②HtoD=Asc(x)-55
8.在文本框Text1中输入一个二进制数,单击“转换”按钮Command1,在文本框Text2中显示该二进制数对应的十进制数,若二进制数中存在不是0和1的数,则输出“非法的二进制数!
”,程序运行时界面如下:
程序代码如下,请在空白处补充完整。
PrivateSubCommand1_Click()
DimsAsString,tAsInteger,iAsInteger
DimchAsString,flagAsBoolean,jAsInteger
s=Text1.Text
flag=True
j=0
Fori=Len(s)To1Step-1
ch=Mid(s,i,1)
Ifch=”1”Orch=”0”Then
____①____
j=j+1
Else
____②____
ExitFor
EndIf
Nexti
Ifflag=TrueThen
Text2.Text=Str(t)
Else
Text2.Text=”非法的二进制数!
”
EndIf
EndSub
答案 ①t=t+Val(ch)*2^j ②flag=False
二进制数与十六进制数互相转换
1.由于16是2的4次方幂,因此每4位二进制数转换为1位十六进制数,每1位十六进制数转换为4位二进制数,不足4位在前面补0.
2.二进制数向十六进制数转换时,从低位开始,每4位二进制数转换成十进制数,再在”0123456789ABCDEF”字符串中用Mid函数取出相对应的字符。
9.小李编写了一个二进制数转十六进制数的VB程序,功能如下:
在文本框Text1中输入一个二进制数,单击“转换”按钮Command1,在文本框Text2输出相对应的十六进制数,运行界面如图所示。
实现上述功能的VB程序如下,但加框处代码有错,请改正。
PrivateSubCommand1_Click()
DimiAsInteger,tAsInteger,s1AsString,s2AsString,s3AsString
s2=”0123456789ABCDEF”
s=Text1.Text
i=Len(s)
DoWhile
′
(1)
Ifi>=4Then
s1=
′
(2)
Else
s1=Mid(s,1,i)
EndIf
t=0
Forj=1ToLen(s1)
t=t*2+Val(Mid(s1,j,1))
Nextj
s3=
′(3)
i=i-4
Loop
Text2.Text=s3
EndSub
答案
(1)i>=1
(2)Mid(s,i,4) (3)Mid(s2,t+1,1)+s3
10.在文本框Text1中输入一组12位以内的二进制数,将该二进制数转化为十六进制数后在Label1中输出。
程序运行后如图所示。
(1)程序运行时,将宽度调整为5000,则需在Form_Load()过程中加入语句________(选填,填字母:
A.Text1.Caption=5000/B.Height=5000/C.Text1.Width=5000/D.Text1.Left 5000)。
(2)实现上述功能的VB程序如下,请在划线处填入合适代码。
PrivateSubCommand1_Click()
Dima(1To12) AsInteger ′a数组用以存储二进制数
Dimb(1To3) AsInteger ′b数组用以存储十六进制数
Dimm,s AsString
Dimi,j,kAsInteger
m=Text1.Text
Fori=12To12-Len(m)+1Step-1 ′将每位二进制数保存到数组a中
___①____
Nexti
Fori=1To3 ′将每4位二进制数转化为十进制数后保存到数组b中
Forj=4To1Step-1
b(i)=b(i)+a(____②______)*2^(j-1)
Nextj
Nexti
Fori=1To3
Ifb(i)<10Then
m=Chr(b(i)+48)
Else
m=Chr(b(i)+55)
EndIf
s=s+m
Nexti
Label1.Caption=”转换后的十六进制数为:
”+s
EndSub
(3)若程序运行后,若在文本框中输入二进制数1101101101,则变量s的值为____________。
答案
(1)C
(2)①a(i)=Val(Mid(m,i,1)) ②i*4-j+1 (3)“36D”
1.编写“十六进制加法”程序。
程序运行时,在文本框Text1和文本框Text2分别输入两个十六进制数,单击“计算”按钮后在文本框Text3上输出两个十六进制相加后的结果。
程序运行如图所示。
(1)观察代码,触发代码执行的事件名是__________。
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
PrivateSubCmd1_Click()
Dima1AsString,a2AsString,sumAsString,tAsString
Dimb1AsInteger,b2AsInteger
DimdistAsInteger,xAsInteger,jwAsInteger
a1=Text1.Text:
a2=Text2.Text:
sum=” ”
dist=Len(a1)-Len(a2)
Ifdist<0Then
t=a1:
a1=a2:
a2=t
____①____
EndIf
Fori=1Todist
a2=”0”+a2
Nexti
jw=0
Fori=____②____
IfMid(a1,i,1)>=”A”AndMid(a1,i,1)<=”F”Then
b1=Asc(a1)-55
Else
b1=Val(Mid(a1,i,1))
EndIf
IfMid(a2,i,1)>=”A”AndMid(a2,i,1)<=”F”Then
b2=Asc(a2)-55
Else
b2=Val(Mid(a2,i,1))
EndIf
x=b1+b2+jw
jw=x\16
If____③____Then
sum=Chr(xMod16+55)+sum
Else
sum=Str(xMod16)+sum
EndIf
Nexti
Ifjw=1Thensum=”1”+sum
Text3.Text=sum
EndSub
(3)若将代码If
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数制 转换 信息技术