进制、编码及其应用专题复习
- 格式:docx
- 大小:336.77 KB
- 文档页数:6
进制、编码及其应用一、二、十、十六进制原理及其互相转换(仅要求整数)1.二→十进制按权相加权2十六→十进制按权相加权16n2.十→二进制除二取余十六→十进制除十六取余3.二←→十六进制互相转换每1位十六进制数转换成 4 位二进制数。
(24=16)从右往左,不足添零9 1001 →9H101010→A 111011→B 12 1100→C131101→D 141110→E 151111→F16 10000→10H (进位)4.进制的一些特点:转换为十进制:按权相加,X进制,权就是X的n次方十进制转换X进制:除X取余二进制数尾数0,偶数,尾数1,奇数,后面加“0”,×2,加“00”,×22二、ASCII码及汉字编码1.7位编码(128种编码27=128),8位存储(1个字节),最高位添“0”,顺序编码00H→7FH(十六进制)“A”ASCII编码:100 0001B 65D41H“a”ASCII编码:110 0001B 97D 61H数字“0 ”ASCII编码:011 0000 48D 30H2.汉字编码:输入码(输入法)、交换吗(区位码)处理吗(机内码、内码)计算机内码表示,占2个字节(80H……以上)字形码(点阵、矢量方式)(汉字显示、打印等相当于位图、矢量图的表示类似,可类比)如16×16点阵的黑白像素点表示的汉字“天”:习题练习讲解例1(2016.10学考题6)下列十六进制数中,与二进制数1010100101B值相等的是()A.2A5H B.A25H C.A91H D.A94H例2(2016.4学考题7)将十进制数从左至右每位分别转换成对应的4位二进制编码(不足4位的左边补0,例如2转换成0010),然后依次连接。
则十进制数109转换后的编码是()A.100100000001 B.000001101101 C.101000001001 D.000100001001例3(2015.10学考题7)用24位二进制数来表示的RGB颜色,将其每位二进制数取反(0改为1,1改为0),即变为另一种颜色,这种操作称为颜色反相。
若某RGB颜色值用十六进制表示为123456H,则其反相后的颜色值用十六进制表示为()A.654321HB. 987654HC. EDCBA9HD. FEDCBAH例4(2016.9嘉兴基础测试题7)一般网络设备均有MAC地址,也叫硬件地址,长度为6个字节,可以用12位十六进制数字组成,为了表示方便,每个字节之间可用“ : ”分割。
利用进制原理分析,以下MAC地址表示正确的是()A.00:26:47:28:30:7A B.24:69:A5:86:7DC.8C:70:5A:F6:0B:58:35 D.66:09:80:02:H2:73例5(2015.9省模拟题10)【加试题】用 UltraEdit软件观察“苹果apple”这几个字符的内码,如图所示,则“iPhone”中的小写英文字母“o”的二进制编码是()A. 01000101B. 01101001C. 01101111D. 01000111例6(2016.6嘉兴期末考试题10)【加试题】用软件查看字符的十六进制编码如图所示,以下分析正确的是()A.“IT”二个英文字存储时占1B B.“信息技术”四个汉字存储时占4B C.“信”内码为11010000 11000101B D.“J”的十六进制编码是“50”例7小李用 UltraEdit 软件观察字符内码,结果如图所示:则下列说法正确的是()A.“技”字的十六进制内码为 BCB.英文字符“IT”是在全角模式下输入的C. “IT”后的空格的二进制内码是00100000D.可以推测“J”字符十六进制内码为 50例8使用UltraEdit软件观察字符内码,结果如图所示, 则存储字符“#正能量#”需要的字节数是()A. 4B. 5C. 7D. 8例9用UltraEdit软件观察“学”的内码是D1A7H,其对应的二进制编码为()A.11010001B B.10100111B C.1101000110100111B D.1010000111010111B例10在二进制数“1011”后面添加两个“0”得到一个新的二进制数,与这个新数值相等的是()A.42D B.44H C.B0H D. 2CH例11汉字“天”(如右图)的字形码如图,16×16点阵的黑白像素点表示,表示该汉字的字形需要的存储空间的字节数是()A. 16B. 32C. 64D. 256例12 用UltraEdit软件观察“Windows”这几个字的内码,如下图所示,分析图中信息,小写字母的内码值与大写字母的内码值存在一定差值,该差值用十进制表示是()A.20 B.32C.57 D. 77三、进制、编码在VB中的应用1.X进制到十进制的按权相加,可以得到X进制转换为十进制的的算法程序:(第一种方法:以字符形式取出各位数字,然后按权相加)①取出X进制的每个数,可以使用Len(x)和Mid(S,i,k)函数。
设X进制数的字符串变量为Shu,a(i)存储X进制数每个数字的数组变量k = Len(Shu)For i = 1 To ka(i)=Val(Mid(Shu, i, 1))Next i②a(i)与相应的权:a(i)* X^(k-i)相乘,依次相加即可。
(第二种方法:可以数的形式取出各位数字,然后按权相加)①如n位数的X进制数(10进制以下),存变量Shu,a(i)存每个数字的数组变量Dim a(1 To n) As IntegerFor i = 1 To na(i) = Shu Mod 10Shu =Shu \10Next i②a(i)与相应的权:a(i)*X^(i-1)相乘,依次相加即可。
例1 二进制数转成十进制数(按权相加法),VB编写程序的界面如下图所示,该窗口中共有①个对象,在Text1输入一个二进制数,点击Command1“转换”按钮,在Text2输出相应的十进制数。
(① 8)(1)程序代码“Private Sub Command1_Click()”中Command_Click()是指②。
(选填:对象/ 属性/ 过程/ 事件/ 方法)(②过程)(2)为了实现上述功能,程序代码如下,其中加框处的代码有错,请改正。
Private Sub Command1_Click()Dim EjzAs String, i As Integer, k As Integer, Sjz As IntegerEjz = Text1.Text③改为k = Len(Ejz)For i = 1 To kx = Mid(Ejz, i, 1)④改为Val(x) * 2 ^ (k - i)Next iText2.Text = Str(Sjz)End Sub2.十进制到X进制的除X取余,可以得到十进制转换为X进制的的算法程序:①十进制数除X取余(设十进制数为变量Shi),得到余数t。
t =Shi Mod x②不断整除X得到新的Shi,循环下去,直到Shi=0。
Shi=Shi \ X③将所有t转为字符连接起来就是X进制数。
例2 十进制数转换成二进制数(除二取余法)。
VB编写程序的界面如图a所示,Text1中输入一个十进制数,点击Command1“转换”按钮,在Text2输出相应的二进制数。
(1)如要将窗口的标题改为“除二取余”,则应修改如图b所示的①对象的②属性值。
(①Form1 ②Caption )图a 图b(2)为了实现上述功能,请在划线处选择或填入合适代码。
Private Sub Command1_Click()Dim x As Integer, t As IntegerDim y As Stringy = ""x = Val(Text1.Text)Do While x <> 0t = x Mod 2'除二取余y =③'在下面选项中选择正确的代码,选填字母x =④'填写合适的代码LoopText2.Text = yEnd SubA.Str(t) + y B.y+Str(t) C.Str(x) & y D.y&Str(x)③A.Str(t) + y④x\23.ASC(“A”)=65 ASC函数得到字符的ASCII码值(十进制)可以用于比较大小、排序等CHR(97)=“a”根据ASCII码值得到相应的字符。
例3 显示ASCII码值。
VB编写程序界面如图所示,在文本框Text1中输入一个字符,点击命令按钮Command1,在文本框Text2中显示字符的ASCII值(十六进制)。
(1)如要使命令按钮Command1显示为“转换”,应修改命令按钮Command1的①属性值为“转换”。
(①Caption )(2)为了实现上述功能,请在划线处填入合适代码。
Private Sub Command1_Click()Dim chAs String, d As IntegerDim h1, h2 As Integer, h3 As Stringch =②…输入字符(②Text1.Text)If ch<> "" Then d = ③…得到十进制ASCII码(③ASC(ch))h1 = d \ 16h2 = d Mod 16If h2< 10 Thenh3 = Str(h2)ElseIf h2 = 10 Then h3 = "A"If h2 = 11 Then h3 = "B"If h2 = 12 Then h3 = "C"If h2 = 13 Then h3 = "D"If h2 = 14 Then h3 = "E"If h2 = 15 Then h3 = "F"End IfText2.Text = ④+ "H" …输出ASCII码(④Str(h1)+ h3 )End Sub。