高考专题复习专题五数制转换_第1页
高考专题复习专题五数制转换_第2页
高考专题复习专题五数制转换_第3页
高考专题复习专题五数制转换_第4页
高考专题复习专题五数制转换_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、专题五数制转换喙真.整!恬漫酗(2019 1月浙江学考)小红编写了一个将5位以内的十六进制正整数转化成十 进制数的VB程序,功能如下:在文本框 Textl中输入一个十六进制正整数,单 击“转换”按钮Commandl,在标签Label3中显示结果。程序运行界面如图所示c要使窗体Forml标题显示“数制转换”,则需该窗体的 印选,填字母: A.Font/ B . Caption/ C. BackColor)属性。要实现上述功能的VB程序如下,请在划线处填入合适的代码。Private Sub Command1_Click() Dim x As String, ch As String Dim fla

2、g As Boolean, i As Integer, result As Long x _CD i = 1 result = 0 flag = True ch = Mid(x, 1, 1) Do While i = 0 And ch = A” And ch v= F” Thenresult = result * 16 + (Asc(ch) Asc( A ) + 10) Elself ch = a And ch v= f Thenresult = result * 16 + (Asc(ch) Asc(“ a)+10) ElseflagEnd IfflagEnd IfFalsei = i + 1

3、ch _ LoopIf flag = True ThenLabel3.Caption = Str(result)ElseLabel3.Caption = 输入错误” End IfEnd Sub若在文本框Text1中输入5+9,单击“转换”按钮后,标签Label3中显示的内 容是 印选,填字母:A.14 / B. E / C.输入错误)。解析 从语句ch = Mid(x, 1, 1)来看,x是文本框Text1输入字符。Ch为每次取出字符,如果不是 0 9或AF或af的字符,则flag = False答案 (1)B (2)Text1.Text Mid(x, i, 1)(3)C(2018 4月浙江学

4、考)某种编码以4位二进制码为一组,每组前两位表示方向, 后两位表示距离。编写一个程序,将编码翻译成方向和距离,距离值为每组编码 后两位二进制码转换为十进制数的值。具体功能如下:在文本框 Text1中输入连 续多组编码,单击“翻译”按钮 Command1,结果显示在列表框List1中。程序运行界面如下图所示。(1)要使程序运行时,文本框Text1的Width属性值为2018,可在Form_Load事件 过程中添加语句 (单选,填字母:A.Width=2018 / B. Text1.Width = 2018 / C. Width.Text1 = 2018)。实现上述功能的VB程序如下,请在划线处填

5、入合适的代码Private Sub Command1_Click()Dim s As String, c As String, d As StringDim n As Integer, bl As Integer, b2 As Integer, v As Integer, i As Integer s = Text1.Text: n = Len(s): i = 1 Do While i 0a= n Mod 2n= n2t= s=Str(a)+sLoopV=t Mod 2Text2.Text=sLabel3.Caption=抽验位值 +End Sub(3)运行该程序,在文本框Textl中输入22

6、,单击“计算”按钮,则显示的校验位 值是。解析(1)本小题考查对象的属性设置,文本框中的显示内容为文本框的Text”属性。(2)该算法通过“除二取余”将十进制的待校验数n转换为二进制数s,变量 t将二进制数各数位上的0”或1”累加起来(统计二进制数据中1”的个数),即“t = t + a。v = t mod 2用于判断t的奇偶性,当v=1时,t为奇数,当v = 0时,t 为偶数,校验位值可以从 t的奇偶性来判断,校验位值为(1 v)或(v1),通过 Label3的Caption属性值输出,需转化为文本型, 处应为str(1v)或str(Abs(v -1)o (3)十进制数22转化为二进制数为1

7、0110”,各数位上的0”或1”相加得3, 为奇数,校验位值为00答案(1)Text (2) t+a str(1 v) (3)04.某数据加密方法描述如下:1)以字节为单位进行加密处理;2)将1个字节的8位二进制数分割成前4位与后4位两个二进制数;3)分别将上述两个4位二进制数转换为十进制数;4)将每个十进制数转换为1个加密字符,对应的“密码表”如下:值(十 进制)0123456789101112131415加密字符IIikECHNPostcard小明按照上述方法,设计了一个字符串(仅包含ASCII字符)加密的VB程序,功 能如下:单击“加密”按钮 Command1,程序依次将文本框 Text

8、1中每个字符的 ASCII码值作为1个字节转换为两个加密字符,连接这些加密字符,最后在文本 框Text2中输出加密结果。下表显示了字符串中一个字符的加密过程:一转摸前字符m一字符m的R5CU码卜选删忧一对应的二进制教一时虚的一时虚的神密字符程序运行效果如图所示:日字打中加尼:部器:jet日字打中加尼:部器:jet幅fct*a.UBHW Hl 由实现上述功能的VB程序如下:(1)请在划线处填入合适代码。Private Sub Command1_Click()Dim n As Integer, s As String, i As Integer, ss As StringDim a As Inte

9、ger存储加密前字符的 ASCII码Dim b1 As Integer, b2 As Integer 分别存储分割、转换后的两个十进制数 s=Text1.TextFor i= 1 To na=Asc(Mid(s, i, 1) b1=a16b2 = a Mod 16ss= ss+ Code2Char(b1)+ Code2Char(b2)Next iText2.Text= ssEnd Sub十进制值转换为加密字符的函数Function Code2Char(c As Integer)As StringDim s As Strings= IlikeCHNpostcard”Code2Cha aEnd F

10、unction若将“密码表”中值为“0寸应的加密字符“I改为“i,”加密后的密文可能无法解密,原因是解析 变量i表示字符在字符串中的位置,n表示字符串长度。在自定义函数中,函数名Code2Char将作为返回值,参数c表示某个数字,其值范围在0, 15之间,当c= 0时,对应密码表第1个字符,因此他在密码本中位置为c+ 1。加密字符r”IIIIII改为i密码本中有两个i,解密成0或2两个数。答案 n=Len(s)或 n= Len(Textl.Text) Mid(s, c+ 1, 1)(2)加密字符i对应两个值0, 2重难突破练看点突甘难在计算机中,存储信息的基本单位是字节,且所有的信息都是二进制

11、数表示,但 二进制比较冗长,把一个字节的8个位分成高4位和低4位两部分,每部分转换 成1位十六进制数,即一个字节在计算机中用8个位存储,但在查看内码或其他操作时,可以用2个十六进制数表示。因此经常进行二进制、十进制和十六进制 之间的转换。考点训练国用牙揶汕考点1十进制数向其他进制数转换1.十进制数向二进制或十六进制转换时,用该数除以2或16,把商作为被除数,重复计算,值到得到的商为0为止,把每次的余数反向连接起来,组成新的进制 数。2,十六进制数的基数为0 9及A F,因此将每次除的余数 0 15分别对应以 上字符,可以有两种方法,一是在 1个“0123456789ABCDEF”字符串中用 M

12、id 函数取出相对应的字符,二是利用字符内码,转换成相应的字符,在转换之前要 进行判断。3.数值小于255的正整数n,转换成十六进制,可以将 n16和n Mod 16在上述 的字符串中,取出两个数对应的字符即可。【例1】 用VB编写正整数十进制转换为十六进制的程序,运行界面如图所示。 程序功能如下:在文本框Text1中输入待转换的十进制值,单击“十进制转换十 六进制”按钮Command1,在文本框Text2中输出转换结果。十遵制软:产【 遗训:换十六.和请在程序的划线处填写合适的代码。【方法一】Private Sub Command1_Click() Dim a As String, s As

13、 StringDim r As Integer, x As Integerx = Val(Text1.Text) s =s1 = 0123456789ABCDEF”Do Whiler = x Mod 16s2 = Mid(s1, r + 1, 1) x = x 16LoopText2.Text = sEnd Sub【方法二】Private Sub Command1_Click()Dim a As String, s As StringDim r As Integer, x As Integerx = Val(Text1.Text)s =Do While x 0If r 9 ThenElses2

14、 = Trim(Str(r) m画微的功能是去除字符两端的空格 End Ifs = s2 + s x = x 16LoopEnd Sub解析本题考核的知识点十进数向其他进制数的转换。关键是如何将数字转换成相对应的字符。方法一中采用在某个字符串取出相应位置的字符,方法二中采用内码的方法。答案【方法一】x 0 或x0 s = s2 + s【方法二】 r = x Mod 16 s2 = Chr(r + 55)【变式训练11小林为了将十进制数转化为k进制数(k介于216之间),设计 如下界面程序:在文本框 Textl中输入一个十进制数,在文本框 Text2中输入整 数k(范围在2到16之间),单击“运

15、行”按钮Commandl,程序将十进制转化为 k进制的,并在标签Label1中输出结果。请回答下列问题:输入十进制济转怏进制方1高E睛果为jiiio 总行程序代码如下,请在划线处补充完整。Private Sub Command1_Click()d = Val(Text1.Text)k = Val(Text2.Text)_力力s =Do While d 0r = d Mod kIf r = 10 Thens2 = Mid( ABCDEF,, 1)Elses2 = Trim(Str(r)End Ifs = s2 + s(21LoopLabel1.Caption = 结果为 + sEnd Sub(2

16、)运行该程序,在文本框Text1中输入“38;文本框Text2中输入“2,”单击“运行”按钮,则Label1显示的内容为是 解析 本题的关键是当余数如果超出9,即把10- 15如何转换成A-F之间字符。答案 r9 d = d k (2)100110考点2其他进制数向十进制数转换.如果是一位十六进制数字转十进制,分0 9和A F两种情况,0 9的可以用Val函数进行转换,A F字符可以用其内码减去55进行转换。.按权展开相加法。从低位开始,把每一位上的数乘以该位数的权, 把每次的乘 积相加。如(1011)2= 1X 20+ 1 X21 + 0X22+ 1X 23, 38H=8X16+3X 161

17、 = 8+48二 56D。相应的代码是For i = Len(s) To 1 Step 1t = Val(Mid(s, i, 1) * 2 A (Len(s) i) n = n + tNext i3.计算左边第1位值t,从第2位开始,把该数表示成前面的数左移一位(在后面 添加1个0)。如将二进制数1101B和十六进制数A1B2H转换成十进制数的过程, 其中i表示每次读取的位置,ch表示每次读出的数字。一进制数向十进制转换十六进制数向十进制转换iChticht1“ 11B1“ A”AH1“ 110B+ 1B2“ 1A0H + 1H0“ 011B+0B3“ B”A1H +BH1“ 1110B+1B

18、4“ 2A1BH + 2H二进制数和十六进制数后面添加1个0,其值分别为原来的2和16倍。相应的代码是For i = 1 To Len(s)ch = Mid(s, i, 1)If ch = 0 And ch v= 9 Thent = Val(ch)Elset = Asc(ch) 55End If n = n * 16 + tNext i【例2】RGB色彩模式是工业界的一种颜色标准, 是通过对红(R)、Ig(G)、蓝(B) 三个颜色通道的变化以及它们相互之间的叠加来得到各种各样的颜色。 RGB颜色 分量的值通常采用十进制数表示,而 Flash软件中颜色值采用十六进制数表示。比如RGB(100,

19、255, 10)等价于十六进制颜色码#64FF0A,每个RGB颜色分量对 应两位十六进制数。颜色RGB十进制10025510十六进制64FF0A小杜编写一个十六进制颜色码转 RGB颜色值的转换程序,程序功能如下:程序运行时在文本框Text1输入一个十六进制颜色码,输入格式为: “#后面跟6位十 六进数(其中字母均为大写)。单击“转换” 按钮Command在标签Label1上输 出对应的RGB颜色值。程序运行界面如下图所示。实现上述功能的VB程序如下,请回答下列问题:程序运行时,在文本框 Text1输入“#C50913;则标签Label1上显示的内容是O(2)请在划线处填入合适的代码。Priva

20、te Sub Command1_Click()Dim s As String, ch As String, ans As StringDim i As Integer, j As IntegerDim a(1 To 3) As Integer分别用于存储 RGB对应的3个十进制分量s = Text1.Texts = Mid(s, 2, 6)For i = 1 To 3a(i) = 0Next iFor i = 1 To 6j = (i + 1) 2ch = Mid(s, i, 1)a(j) ;Next iFor i = 1 To 3ans = ans + Str(a(i)If i 3 Then

21、 ans = ans + ,”Next ians = RGB( + ans + ” )”Label2.Caption = ansEnd SubFunction HtoD(x As String) As Integer将一位十六进制数转十进制数If x = 0 And x = 4 Thens1 :|Mid (s, i, 1) | (2)Elses1 = Mid(s, 1, i)End Ift = 0For j = 1 To Len(s1)t = t * 2 + Val(Mid(s1, j, 1)Next js3 =s3 + Mid (s2, t , 1)s3 =s3 + Mid (s2, t ,

22、 1)Loop Text2.Text = s3End Sub解析i表示字符串s中位置,从最后找到第一个位置为止。当i大于等于4时,表示可以取出4位二进制数,因此取出的字符个数为4,否则取出剩余的字符。在循环For j = 1 To Len(s1)中,是计算每组二进制对应的十进制数,再在s2中找到对应的字符,并进行反向连接。答案 (1)i = 1 (2)Mid(s, i, 4) (3)Mid(s2, t+1 , 1) + s3【变式训练3】 在文本框Text1中输入一组12位以内的二进制数,将该二进 制数转化为十六进制数后在Label1中输出。程序运行后如图所示。o R。帆叫- ,-:*I mi

23、iiilni-MWM-hAjMiMAr iad程序运行时,将宽度调整为 5000,则需在 Form_Load()过程中加入语句处填,填字母:A.Text1.Caption = 5000 /B.Height= 5000 /C.Text1.Width=5000 /D.Text1.Left 5000)。实现上述功能的VB程序如下,请在划线处填入合适代码。Private Sub Command1_Click()Dim a(1 To 12) As Integer 数组用以存储二进制数Dim b(1 To 3) As Integer 组用以存储十六进制数Dim m, s As StringDim i, j

24、, k As Integerm = Text1.TextFor i = 12 To 12 Len(m) + 1 Step 1 将每位二进制数保存到数组a中mNext iFor i = 1 To 3 将每4位二进制数转化为十进制数后保存到数组b中For j = 4 To 1 Step 1b(i) = b(i) + a( &) * 2 A (j 1)Next j Next i For i = 1 To 3If b(i) 10 Thenm = Chr(b(i) + 48) Elsem = Chr(b(i)+ 55) End If s = s + m Next i Label1.Caption = 转

25、换后的十六进制数为:+ sEnd Sub若程序运行后,若在文本框中输入二进制数1101101101,则变量s的值为O解析 先把二进制数m每一位数字存储在数组a中,再从低位开始,每4位转换 为一位十六进制数。答案(1)C (2)a(i) =Val(Mid(m, i, 1)i * 4 j + 1 (3) “36D獴时训练I河咔m1 .编写“十六进制加法”程序。程序运行时,在文本框Text1和文本框Text2分 别输入两个十六进制数,单击“计算”按钮后在文本框 Text3上输出两个十六进 制相加后的结果。程序运行如图所示。).|12D(1)观察代码,触发代码执行的事件名是 。实现上述功能的VB程序如

26、下,请在划线处填入合适的代码Private Sub Cmd1_Click()Dim a1 As String, a2 As String, sum As String, t As StringDim b1 As Integer, b2 As IntegerDim dist As Integer, x As Integer, jw As Integeral = Textl.Text: a2 = Text2.Text: sum =dist = Len(a1) Len(a2)If dist = A And Mid(a1, i, 1) = A” And Mid(a2, i, 1) = Fb2 = As

27、c(a2) 55Elseb2 = Val(Mid(a2, i, 1)End Ifx = b1 + b2 + jwjw = x 16If& Thensum = Chr(x Mod 16 + 55) + sumElsesum = Str(x Mod 16) + sumEnd IfNext iIf jw = 1 Then sum = 1 + sumText3.Text =sumText3.Text =sumEnd Sub(3)若将代码If jw = 1 Then sum = 1 + sum删除,则图中Text3中显示 的结果为。解析 dist表示字符 串长度的差值,当 distLen(a2),并且把

28、a2前面加0,使得长度一致。两个十六进制相加时,应从低位开始相加,jw表示是否有进位,如果除去进位后的数,大于 10转换成A-F,否则转换成09的数字。答案 (1)Click (2)dist = -dist 或 dist = Abs(dist) Len(a1) To 1 Step 1 x Mod 16 = 10(3)2D.编写VB程序,实现如下功能:在文本框Text1中输入十进制整数,文本框Text2 中输入待转换进制(范围216),单击“转换”按钮Command*在列表框List1 中输出该整数对应的进制结果,运行效果如图 1所示。制ft. - Kirmi输入避邪R:bimfii in输入避

29、邪R:bi in hi no-(I in(!i(1)设计时,属性窗口对象列表如图2所示,则该程序共有 个对象为实现上述功能,请在划线处填入合适的代码。Private Sub Command1_Click()Const code = 0123456789ABCDEF”Dim s1 As String, s As String变量s存储转换后的结果Dim x As Long, R As Integer_mIf R = 2 And R 0 y = x Mod R x ;si = Mid(code, y + 1, 1)将余数转换为对应的字符 s =LoopListl.Addltem “( & Text

30、l.Text & ”)10“ & “ 一(“ & s & ”) & REnd If End Sub 答案 (1)6 (2)R = Val(Text2.Text) x = xJB( s1 + s.二进制转十六进制,从文本框TextB输入二进制整数,单击“转换”按钮,将二进制转换为十六进制并显示在文本框TextH中。程序界面如图所示。转换方法:先从右往左将二进制数分割成4位一组,若最左边的一组不足4位,则用0将高位补足,然后将每4位二进制数转换为1位十六进制数。a .爆履卧帙力 wwm- o xtftA品 I 10011 L10(H I出情力”;if例转换心(1)观察程序代码,“转换”按钮的对象名

31、为 。(单选,填字母:A.TextB/TextH/ C. Command1/ D. Convert/ E.转换)为实现上述功能,请在划线处填入合适的代码。Private Sub Convert_Click()Const zf = 0123456789ABCDEF”Dim a(1 To 100) As Integer, temp As IntegerDim s As String, res As String, n As Integer, r As Integerres = “: s = TextB.Text: n = Len(s)For i = 1 To na(i) = Val(Mid(s,

32、i, 1) Next in 4temp = 0For i = 1 To r 将最高的r位转换为十六进制temp = temp * 2 + a(i)Next ires = Mid(zf, temp + 1,1)For i = 1 To t 将t组4位二进制转换为十六进制temp = 0For j =1 To 4temp = temp * 2 +Next jres = res + Mid(zf, temp + 1,1)Next iTextH.Text = resEnd Sub若在文本框TextB中输入“101000111;则单击“转换”按钮后的输出结果为:O解析 根据本程序的算法及代码,将二进制字

33、符串里的字符逐个取出来,存储到数组a,最高位存储在a(1)。计算出这个二进制数按4位一组来分有完整的几组,存储在t变量,除去完整的t组4位的,剩下的r个位成一组,单独转成十六进 制,转换时本程序中先计算出一组二进制对应的十进制数,然后到字符串zf中去取对应的十六进制字符,需要注意如果计算出的十进制是 temp ,那么它在zf 中对应的十六进制字符是 temp+1位置。答案 (1)D (2) r = n Mod 4 或 r =n t * 4a(j + r + 4 * (i - 1) (3)147.有趣的进制数,编写 VB程序找出符合条件的十进制自然数,它的七进制与 九进制都是三位数,且七进制与九

34、进制的三位数码顺序正好相反,输出这个十进 制数与对应的七进制和九进制数。程序运行界面如下图所示。TTl-c X.*期里用景:24H物7的七道旗轨III鹿徜丸近制壮3、I实现上述功能的VB程序如下,请在划线处填入合适的代码Private Sub Command1_Click()Dim i As Integer, d As Integer, r As IntegerDim rs As String, ansi As Integer, ans2 As IntegerFor i = 81 To 342Do While d 0r = d Mod 9rs = Str(r) + rsLoopansi = V

35、al(rs)求出相应的七进制数,存储在变量ans2中,代码略If ansi Mod 10 = ans2 100 And ansi 100 = ans2 Mod 10 And ThenTexti.Text _ Text2.Text = Str(ansi)Text3.Text = Str(ans2)End IfNext iEnd Sub解析 利用变量d代替i进行进制的转换,不会影响到i的值。将十进制数d转换九进制,因此每次要除9。符合题目的要求,三个数字顺序正好相反。答案 d = id=或者其它等价答案 ansi i0 Mod 10 = ans2 10 Mod 10 或者(ans1 mod 10)

36、 10 =(ans2 mod 10) 10 或者 mid(str(ans1), 2, 1) = mid(str(ans2), 2, 1)或者其它等价答案 str(i).在计算机系统中,数值一般用补码来表示和存储,补码由符号位和数值位两部分组成,符号位用0表示正数,用1表示负数。例如,整数n(128= n=127) 用8位二进制补码的表示方法为:符号位(1位)数值位(7位)第1位(最高位)第28位正数:正整数补码的数值即其二进制表示。 例:12的8位二进制表示00001100, 最高位即符号位 0”表示正数。负数:除符号位外,所有位取反,然后+ 1。例:一5的8位二进制补码表示方 法如下,5对应

37、7位二进制数为0000101(原码),所有位取反后为1111010仅码), 再加1后为11110111卜码),再设置符号位为1,因此5用8位二进制补码表示 为11111011小明设计了一个 VB程序,点击“补码”按钮 Command上将文本 框Text1中输入的整数n(128= n = 0 ThenFor i = 8 To 2 Step - 1计算二进制原码m(i) = n Mod 2n = n 2Next im(1) = 0Elsen 二 - nFor i = 8 To 2 Step 1计算二进制反码m(i)n = n 2Next i i = 8 m(i) = m(i) + 1Do Whil

38、e m(i) = 2m(i) = 0i = i 1Loopm(1) = 1设置符号位End IfFor i = 1 To 8Text2.Text = Text2.Text & Trim(Str(m(i)Next iEnd Sub解析 28转换成7位二进制是0011100,所有位取反1100011,再加1值为110010。设置符号位为1,结果为1100100=将二进制的最低位存储在 m(8)中,m(2)为高位,m(1)是符号位。若某位为2时,该位为0,并向前进位。答案 (1)1100100 (2)(n + 1) Mod 2 或 1 n Mod 2 m(i 1) = m(i 1)+16.对输入的明

39、文(由英文字母或数字组成的字符串)进行加密,输出加密后得到的 密文。数据加密方法为对明文中的每个字符进行如下处理:1)将该字符ASCII码转换成对应8位二进制;2)将对应8位二进制数进行按位取反(1变0, 0变1);3)将产生的8位二进制数循环左移3次;4)最后产生的8位二进制数转换成对应的十六进制数。F5;在文例如,明文大写字母”A通过上述算法加密算法加密后生成的密文是 本框Textl中输入明文,单击“生成密文”按钮 Commandl,加密后生成的密文 显示在文本框Text2F5;在文(1)如果输入明文为大写字母”F;则生成的密文是 。(2)请在划线处填入合适的代码。Function bto

40、h(m As String) As String将4位二进制数转换成对应的十六进制数Dim s As Integer, i As Integer, str As Stringstr = 0123456789ABCDEF: s =0For i = 1 To 4s = s * 2 + Val(Mid(m, i, 1) Next iEnd FunctionPrivate Sub Command1_Click()Dim ans As String, s As String, ch As String, ret As StringDim i As Integer, asci As Integer, n

41、As IntegerFor i = 1 To Len(s)ch = Mid(s, i, 1)取出第i个字符存入变量chasc1 = Asc(ch)ret = ”For m = 1 To 8完成加密步骤1)和步骤2)n = (asc1+ 1) mod 2ret = n & retNext m ret = Mid(ret, 4, 5) + Mid(ret, 1,3) 完成加密步骤 3)和步骤 4) si = btoh(Mid(ret, 1,4)s2 = btoh(Mid(ret, 5, 4)ans = ans & si & s2 将第i个加密后的字符添加到变量 ans的末尾 Next iText2

42、.Text = ansEnd Sub解析 字母F的内码为01000110,按位取反得到10111001,循环左移3位得到11001101对应十六进制数为CD。 btoh函数将4位二进制数转换成对应的十六进制数,并通过函数名返回函数的值。答案 (1)CD (2) btoh = Mid(str, s +1,1) s = Text1.Text asc1 = asc12.字符加密:用VB编写某字符串加密解密程序(仅针对ASCII码字符),其加密 过程如下:首先,分别求出待加密 ASCII字符的ASCII码,然后用7位二进制来 表示,比如“4的ASCII码为十进制52,转换为7位二进制为“0110100

43、其次, 从左至右依次记为第1、2、37位,分别把第3、4、5位取反,即0变1, 1 变0,至此“011010吸为“0101000将此二进制转换为 ASCII码为40,对应的 字符为左括号”(:即”4经过加密后得到加密字符左括号“(。”加密解带桂序:口蚂心,、件施密字杵或栉觥商?将:A R吟12 小网。W师密字符避解窠字符:|-阀 me啰堂,咻宜LT-在文本框Text1中输入ASCII字符,单击命令按钮Command则在文本框Text2 中显示经过加密的字符。VB代码如下,程序界面如图所示。上述加密与解密过 程实际上是可以互逆的,请完成下列问题。请在划线处填入合适的代码。Private Sub

44、Command1_Click()Dim a(1 To 7) As IntegerDim i As Integer, j As Integer, n As IntegerDim asci As Integer, s As String, si As String i = 1 s = Textl.Text Text2.Text = ”Do While i = Len(Textl.Text)si = Mid(s, i, 1) asci = Asc(s1) n = 0For j = 7 To i Step iIf j =3 Or j = 4 Or j = 5 Then a(j) ;Else a(j)

45、= asci Mod 2 End If asci = asci 2 n =(2 Next j Text2.Text = Text2.Text +i = i + i Loop End Sub 解析 si表示每个待加密的字母,asci为Si的ASCII值,采用除2倒取余数(asciMod2)法,把各个位的值依次存放在数组 a中,当j = 3 Or j =4 Or j = 5需 要取反,取反的方法是把该位加i后再Mod 2,计算各位后,还需转化成十进制 数,因此采用按权展开相加法,把计算的十进制值存放在变量n中,再到n转换成相对应的字母。答案 (asci Mod 2 + i) Mod 2 n + a

46、(j) * 2 A (7 j) Chr(n).在计算机中负数反码的计算如下:给出十进制数x(- i27x0),将x的绝对值转化为七位二进制数,然后逐位取反,最左边增加符号位i得到八位二进制数反码。例如十进制数-7,将7转换为七位二进制数为 0000111,逐位取反变 成1111000,最左边增加符号位1得到八位二进制数反码为 1111100Q小杜编写 了一个反码转化程序,功能如下:在文本框Text1中输入十进制负数x (127x0),单击按钮 Command1后,在标签 Label1上显示其反码。程序运行 界面如下图所示:结合程序界面和程序代码,没有使用控件为(填数字:1. 2.0 画 4.I

47、S结合程序界面和程序代码,没有使用控件为(填数字:1. 2.0 画 4.IS)o实现上述功能的VB程序如下,请在划线处填入合适的代码。Private Sub Command1_Click()Dim n As Integer, t As IntegerDim r As Integer, c As Integer, s As String n = Val(Text1.Text)If n 0r = (t + 1) Mod 2t = t2c = c + 1LoopFor i = 1 To 8 cs = Str(1) + s十进制数”+ Str(n) + ”的二进制反码为十进制数”+ Str(n) +

48、”的二进制反码为Label1.Caption =ElseLabell.Caption = 输入的数不符合要求!”End IfEnd Sub程序运行时,在文本框中输入“27”,单击“转反码”按钮后,标签Labell 上显示的内容是为:十进制数一27的二进制反码为 o解析 本题解题的关键在于理解求反码流程,难点在 r =(t+1) mod作用是实现逐位取反。8 c表示前面0的个数。答案 (1)2 (2)t = n 或 t = Abs(n) s = Str(r) + s (3)111001009.卡普利加数又称雷劈数,指该数的平方拆分成两部分,该数与这两部分的和相 等。编写VB程序,实现功能:在文本

49、框 Text1.Text输入一个数,单击“判断” 按钮Command在标签Label2中显示该数的平方,在标签 Label3中显示结论。 程序运行的界面如下图所示:&卡普利fll瞰D国7 3输入数 口 诲教的平方是二恤U判断I 卯* 1=的(1) “Private Sub Command1_Click() CliCk 是 伊选,填字母:A.属性名/ B.事件名/ C.过程名)。实现上述功能的VB程序如下,请在划线处填入合适的代码。Private Sub Command1_Click()Dim x As Integer, i As Integer Dim y As Long, flag As Boolean x = Val(Te

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论