版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
绪论计算机基础知识学习目标·计算机系统的基本组成·计算机中的信息表示·计算机指令、计算机语言及计算机程序设计的概念·操作系统的作用·二进制、八进制、十六进制以及它们的关系·计算机中各种信息的编码
1一台计算机是由以下几个主要硬件组成(如下图所示):输入设备
输出设备
内存
通信设备
存储设备
中央处理器CPU总线这些组件通过一个称为“总线(bus)”的子系统连接,总线负责在这些组件之间传输数据和控制信号。(二)计算机的硬件系统1. 计算机硬件结构22. 计算机的主要部件及其功能(1)中央处理器(CentralProcessingUnit,CPU,“芯片”)它是计算机的大脑。它从内存中获取指令然后执行这些指令。cpu通常由两个部分组成:控制单元(controlunit,CU)——“控制器”和算术/逻辑单元(arithmetic/logicunit,ALU)——“运算器”。CU用于控制和协调除cpu之外的其他组件的动作;ALU用于完成数值运算(加、减、乘、除)和逻辑运算(比较或判断)。CPU的工作速度,较常见的芯片为2GHZ(可达到2亿条指令/每秒)(1HZ相当于1个脉冲周期/秒;1KHZ=1000HZ;1MHZ=1000KHZ;1GHZ=1000MHZ;)(假设执行1条指令需要10HZ,即10个脉冲周期;则2GHZ可达到2亿条指令/每秒)3cpu中“运算器”的内部结构,如下图所示:输出门加法器输入选择门通用寄存器组AXBXPC......输入选择门4(2)内存(memory)
用于存放CPU当前正在执行的程序和处理的数据。它是一种可以与CPU直接交换信息的存储器。内存..010010100110000101110110011000010011011000000110.字符‘J’字符‘a’字符‘v’字符‘a’字符‘6’整数6内存地址..200020012002200320042005. 内存利用电的两种状态:关(off)和开(on),习惯上把它们分别当做
0
和1。这些0和1被解释为二进制数字系统中的数,并通常被称为“比特”(bit,二进制数)。cpu要执行的指令以及各种类型的数据(数字、字符、字符串等),都被编码为某种约定的比特(0、1)序列存储在内存中。 在内存中,字节是最小的存储单元。内存其实是一个由字节组成的线性空间,每个字节都有一个唯一的地址(内存地址)。每个字节(byte)能存储8个比特。说明1:由于计算机是以字节为单位来分配内存的,所以,如果一个字节存放不下一个大数字,那么,计算机就会分配几个地址相邻的字节来存放之。说明2:内存字节中的内容永远非空,但其原始内容可能对你的程序无意义。一旦新的信息被存入字节,该字节中原来的内容将会丢失!说明3:程序中各种数据的编码都是由系统根据编码表来自动完成的(例如,在流行的ASCII编码表中,字符‘J’是用一个字节01001010来表示的)。内存字节及其内容5计算机中存储器的大小通常被称为“容量”,并且以字节(简写为B)、千字节(KB)、兆字节(MB)、千兆字节(GB)、万亿字节(TB)为计量单位: 1KB(kilobyte)=
1024B
(byte) 1MB(megabyte)=
1024KB(kilobyte) 1GB(gigabyte)=
1024MB(megabyte) 1TB(kilobyte)=
1024GB(gigabyte)其中,1024=210
。62)随机存取存储器(RandomAccessMemory,RAM)1)只读存储器(ReadOnlyMemory,ROM)在物理上,内存实际上是由以下两部分组成的: 其特点是:断电后,其中数据不会丢失。现代微机的主板上都装有ROM,并在其中固化了一个“基本输入输出系统”——BIOS,其功能是:
(i)每当计算机启动时,完成对系统的加电自检。
(ii)对系统中各种功能模块进行初始化。
(iii)引导操作系统。
(iv)为操作系统提供基本输入输出设备的驱动程序(键盘、显示器、打印机、时钟、扬声器、软盘、硬盘和光盘)。
RAM
就是通常所说的“内存”。其特点是:一旦断电,其中的信息将会丢失。它被用来存放当前正在执行的程序和数据。
7(3)存储设备(store) 内存是不能长久保存数据的,因为断电时信息就会丢失。程序和数据都应该被永久地存放在存储设备上,当计算机确实需要使用它们时再装入内存。因为从内存读取数据要比存储设备快得多!所以,store也叫做“外存”(外部存储器),或叫做“辅存”(辅助存储器)。而内存则通常被叫做“主存”。 存储设备主要有以下几种: 磁盘驱动器 光盘驱动器 磁带驱动器
USB闪存驱动器说明:驱动器(drive)是对存储介质进行读、写操作的设备。例如,磁盘、光盘、磁带等都是存储介质。8*关于计算机的存储体系:在现代计算机系统中,通常采用三级存储体系。如下图所示:CPU缓存(cache)主存(memory)外存(store)·一级存储器——缓存(cache)一种工作速度与CPU相匹配的存储器,价格较昂贵。用于存放CPU当前正在执行的那部分指令和数据。通常被设计在CPU
的内部(容量为2~16MB)。·二级存储器——主存(memory) 一种工作速度低于CPU的存储器(又称内存),价格不太昂贵。用于存放CPU当前正在执行的程序和数据(容量为2~3GB)。·三级存储器——外存(store)一种工作速度远低于CPU的存储器,价格较低廉。用于存放CPU当前不使用的程序和数据(80~250GB)。最新的缓存技术在缓存内部再分成二~三级。在拥有三级缓存的CPU中,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率。9(4)输入设备(Inputdevices)接收用户输入的程序和原始数据,并将它们转变为计算机能识别的形式(二进制代码)存放到内存中。常用的输入设备有:键盘、鼠标、扫描仪、光笔等。(5)输出设备(Outputdevices)将内存中计算机的处理结果(二进制代码)转变为人们所能接受的形式。常用的输出设备有:显示器、打印机、绘图仪等。(6)通信设备(Communicationequipment)计算机可以通过通信设备进行联网。常用的通信设备有:调制解调器(Modem)、网络接口卡(NIC)等。10(三)计算机的软件系统1. 程序硬件仅是计算机得以运算的基础。要使计算机能具有运算和控制功能,还必须配置必要的计算机软件(software)——计算机程序(program)。程序:发给计算机的一组指令 ——可以让计算机执行并完成所需任务的一个指令序列。指令:告诉计算机该做一个什么操作的操作命令(也叫做代码)。(1)指令系统(Instructionset)最初植入计算机的一套机器指令集——机器语言由于计算机只能理解用0和1编写的机器指令,因此,机器语言其实就是一套机器指令集及其语法规则。11下面显示了一段用机器语言编写的程序:010000110110000000110111000100101100011000001110111001111001001110000011100001110010001000110注意:机器语言因CPU类型而异!12输出门加法器输入选择门通用寄存器组AXBXPC......输入选择门AXBXcpu中“运算器”的内部结构,如下图所示:“运算器”进行算术/逻辑运算的工作过程是:先从内存中将待处理的数据取至某些寄存器中,然后再将寄存器中的数据送入加法器并完成运算。13(2)指令的执行过程内容....11011010100110101011011001001101.....某指令的第一个字节第二个字节某指令的第一个字节第二个字节...地址..8000800180028003...PCPCPC:ProgramCounter程序计数器:存放下一条指令的内存地址PC是CPU中的一个专用寄存器。每条指令的执行过程,可分为以下两个阶段:(i)取指阶段——CPU从PC所指的内存地址中取出将要执行的指令;(ii)执行阶段——CPU对该指令首先进行分析、译码、判断所要完成的操作,然后向相应的功能部件发出控制信号。最后,由这些功能部件去完成相应的操作。(3)程序的执行过程 按程序(已存放在从某个字节开始的内存中)中指令的排列顺序,从第一条指令开始,重复上述步骤。10110110010011011101101010011010然后,PC指向下一条指令。142.汇编语言(assemblylanguage)
比机器语言稍先进的程序设计语言是汇编语言。以下显示了一段用汇编语言编写的程序:mainprocpay movax,dseg movax,0b00h addax,da moval,bl mulbi,ax movbl04h15汇编语言源程序文件机器语言目标文件执行执行结果汇编器
汇编语言允许程序员在程序中采用助记符,而不是用0和1以“简化”工作。助记符是一种辅助记忆的方法,这里指采用字母的缩写来代表指令。例如,用助记符add来代表加法操作、mul代表乘法操作、mov代表将数据从内存的一处移动到另一处。由于计算机只能识别机器语言,所以,需要一个“汇编器”负责将汇编语言指令转换成机器代码:163.高级语言(high-levellanguage)
高级语言允许程序员使用类似英语的程序指令。下面显示了一段用BASIC语言编写的程序:input"Entername";nameinput"Enterhoursworked";hoursinput"Enterpayrate";rategrossPay=hours*ratefederalTax=0.2*grossPaysocSecTax=0.07*grossPaystateTax=0.06*grossPaynetPay=grossPay-federalTax-socSecTaxprintname,netPayend
高级语言的程序指令很像英语,即使读者不懂BASIC语言,也不难理解上面的程序是在一步一步地指示计算机如何计算并显示出员工的净工资。17有一百多种高级语言,每一种都是为特定目的而设计的。最著名的有:COBOL(面向商业的通用语言)FORTRAN(面向数值计算)BASIC(易学易用)PASCAL
(面向教学)C
(具有汇编语言功能的高级语言)C++(适用于系统软件开发)Java(适用于互联网应用程序)18机器语言文件高级语言源程序文件编译器链接器库代码可执行文件(.exe)由于计算机同样不能理解高级语言,因此需要使用一个称为“编译器”的程序将源程序(或称为“源代码”)翻译成机器语言程序。194. 操作系统操作系统硬件应用程序用户操作系统的主要任务有:·控制和监控系统的活动·分配和调遣系统资源·安排各程序的操作顺序
操作系统(OperatingSystem,OS)是运行在计算机上最重要的程序,它是运行在计算机硬件上的第一个程序——负责管理和控制计算机的活动。比较流行的操作系统有MSWindows、MacOS、Linux。如果没有操作系统,像IE、Word、vc++这样的应用程序就不能运行。硬件、操作系统、应用程序和用户之间的关系如图所示:20操作系统的基本概念(1)操作系统的定义(2)操作系统的基本功能
(1)操作系统的定义操作系统是一个大型的程序系统,它负责计算机的全部软、硬件资源的分配、调度工作,控制协调多个任务的活动,实现信息的存取保护,并提供用户接口,使用户获得良好的工作环境。操作系统使整个计算机系统实现了高效率和高度自动化。(2)操作系统的基本功能1)存储器管理的功能2)处理机管理的功能3)设备管理的功能4)文件管理的功能1)存储器管理的功能内存分配内存分配的主要任务是为每道程序分配内存空间,但要以存储器利用率最高、减少不可用的内存空间为准则,同时允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要。内存保护
内存保护的主要任务是确保每道用户程序在自己的内存空间中运行,互不干扰,也就是说绝不允许用户程序访问操作系统和其他用户的程序和数据。
地址映射一个应用程序经编译后,通常会形成若干个目标程序,这些目标程序再经过链接而形成可执行程序。内存扩充由于物理内存的容量有限,难以满足用户的需要,存储器管理的任务就是在不增加物理内存的条件下,借助于虚拟内存技术从逻辑上去扩充内存容量,使用户所感觉到的内存容量比实际内存容量大得多。2)处理机管理的功能处理机管理的主要任务是对处理机进行分配,并对其运行进行有效的控制和管理。在多道程序环境下,处理机的分配和运行都是以进程为单位,所以对处理机的管理可理解为对进程的管理。进程控制进程同步进程通信
CPU调度3)设备管理的功能缓冲管理为达到缓解CPU和I/O设备速度不匹配的矛盾,达到提高CPU和I/O设备利用率,提高系统吞吐量的目的,许多操作系统通过设置缓冲区的办法来实现。
设备分配设备分配的基本任务是根据用户的I/O请求,为他们分配所需的设备。如果在I/O设备和CPU之间还存在设备控制器和通道,则还需为分配出去的设备分配相应的控制器和通道。设备处理设备处理程序又称设备驱动程序。其基本任务是实现CPU和设备控制器之间的通信。
设备独立性和虚拟设备用户向系统申请和使用的设备与实际操作的设备无关
4)文件管理的功能文件存储空间的管理目录管理文件的操作返回本节《习题1.1》(1)计算机硬件和软件的定义。(2)计算机的主要组件及它们的作用。(3)计算机中为什么只能使用0、1。(4)bit(比特,二进制位)、byte(字节)的概念。(5)内存的作用及特点;内存地址的概念。(6)外存的作用及特点。(7)存储器容量的几种计量单位。(8)指令及其执行过程;程序及其执行过程。(9)机器语言、汇编语言、高级语言的特点。(10)什么叫源程序?什么叫编译器?(11)操作系统的特点及其主要任务。(12)存储器管理、处理机管理、设备管理、文件管理的功能。301.2计算机中数据的表示——数据编码的概念前面我们简单介绍了计算机中控制信息的表示——指令的编码。其实,在计算机中,任何信息都是以计算机能够识别的形式出现的。下面我们再来介绍数据信息在计算机中的表示。在计算机中,各种信息都必须经过数字化编码——转换成某种二进制代码后才能被处理。因此,理解信息编码及其处理技术将是至关重要的。·编码:采用少量的基本符号并选用一定的组合原则(编码的两大要素),以表示大量复杂多样的信息。编码在人类的生活中无所不在。例如,可以用10个阿拉伯数码作为基本符号来组合表示任何数字;又如,可以用26个英文字母作为基本符号来组合表示任何英语词汇。
31·二进制编码 在计算机中,任何信息的编码所采用的基本符号都是二进制数码:0、1。究其原因:
1)二进制数码在物理上最容易实现。如,电压的高低、脉冲的有无,都可以方便地用来表示0或1。
2)用二进制数码表示数时,其编码以及运算规则都比较简单。
3)二进制数码的0、1恰好与逻辑命题的两个值“是”/“否”、“真”/“假”相对应。使计算机便于实现逻辑运算。32(一)数值的编码
计算机采用以2为“基数”的“进位计数制”。1. 二进制数(Binary)
如同十进制数256的大小是如下计算的那样
“二进制计数制”:(1)只有两个数码0和1;(2)逢2进1;(3)数中每位数字的大小等于该位上的数码乘以相应的“权”。一个二进制数11001011的大小也是“各位数码按权展开再相加”。1×27+1×26+0×25+0×24+1×23+0×22+1×21+1×20
=
128+64+0+0+8+0+2+1
=
203
2×102+5×101+6×100
=
2×100+5×10+6×1
=
200
+
50
+
6
=
256二进制转换成十进制的方法332. 十进制到二进制的转换除数
商余数
2
|300低位
2
|
15
1
2
|7
1
2
|
31
2
|
11
高位
0
说明:
计算机中有一个数制转换程序:会自动将源程序中的十进制数转换成二进制数。下面是“二进制/十进制对照表”。采用“除2取余法”。其具体方法如下:把一个十进制数不断除以2,记下余数;如此重复,直到商为0为止。
最后将所得余数逆向排列便是对应的二进制值。
例如,(30)10的转换过程如左图,将余数按由高到低顺序排列,即得其结果:11110
34二进制十进制001110211310041015110611171000810019......11111510000168位二进制数最多可以表示256个数(28个数);试问:9位、10位二进制数分别最多可以表示多少个数?二进制十进制......10000032......100000064......10000000128......11111111255353. 八进制和十六进制的概念八进制及十六进制的出现,主要是为了方便二进制数的表示,因为,二进制数表示起来比较冗长。(1)八进制(Octal)基数为8;有8个数码:0、1、2、3、4、5、6、7;逢8进1。一个八进制数2307的大小也是各位数码按权展开再相加。
2×83
+3×82
+0×81+7×80 =
512+192+0+7
=
71136(2)十六进制(Hex)一个十六进制数4AF的大小也是各位数码按权展开再相加。
4×162+10×161+15×160 =
1024+160+15
=
1199基数为16;
16个数码:
0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F;进位规则:逢16进1。37(3)十进制到八进制的转换采用“除8取余法”。其具体方法如下:把一个十进制数不断除以8,记下余数;如此重复,直到商为0为止。
最后将所得余数逆向排列便是对应的八进制值。
例如,(30)10的转换过程如左图,将余数按由高到低顺序排列,即得其结果:36
商余数8|308|36
低位
03高位
38(4)十进制到十六进制的转换采用“除16取余法”。其具体方法如下:把一个十进制数不断除以16,记下余数;如此重复,直到商为0为止。
最后将所得余数逆向排列便是对应的十六进制值。
例如,(30)10的转换过程如左图,将余数按由高到低顺序排列,即得其结果:1E
商余数16|3016|1E(14)
低位
01高位
下面是“十进制/二进制/八进制/十六进制对照表”。39十进制二进制八进制十六进制000011112102231133410044510155611066711177810001089100111910101012A11101113B12110014C十进制二进制八进制十六进制13110115D14111016E15111117F1610000201017100012111............3111111371F321000004020331000014121............63111111773F64100000010040............40(5)二进制到八进制的转换其具体方法是:将二进制数从低位到高位,每3位分成一组,最高位不足3位补0。然后,每一组用一个八进制数码表示。例如,(11001)2的转换过程如下:
(011,001)→(3,1)→(31)8其十进制数为25.
(6)二进制到十六进制的转换其具体方法是:将二进制数从低位到高位,每4位分成一组,最高位不足4位补0。然后,每一组用一个十六进制数码表示。
例如,(11001)2的转换过程如下:
(0001,1001)→(1,9)→(19)16
其十进制数为25.
3位二进制数:000~111最多只能表示1位八进制数:0~7因为:log28=34位二进制数:0000~1111最多只能表示1位十六进制数:0~F因为:log216=441十进制二进制八进制十六进制000011112102231133............711177810001089100111910101012A............14111016E15111117F
16100002010二进制与八进制二进制与十六进制42(8)十六进制到二进制的转换其具体方法是:依次将一个十六进制数中的每1位用4位二进制数码表示之即可。例如,(1E)16的转换过程如下:
(1,E)→(0001,1110)→(00011110)
→(11110)2其十进制为30.(7)八进制到二进制的转换其具体方法是:依次将一个八进制数中的每1位用3位二进制数码表示之即可。例如,(36)8的转换过程如下:
(3,6)→(011,110)→(011110)
→(11110)2
其十进制为30.
说明:八进制、十六进制只是人们为了便于表示二进制而使用的两种方式。与十进制一样,计算机并不认识它们!所以,系统内部通常都会提供将二进制转换成八进制和十六进制的转换程序.43表示该数是一个正数表示该数是一个负数例如,4.
关于数值的符号由于计算机中的任何信息都是用二进制(编码)来表示的。因此,在计算机内部,数值的符号(即,正号+、负号-)也是用二进制来表示的。其方法是:将每个二进制数的最高位规定为“符号位”——用于表示该数值的符号:0表示正号;1表示负号。0
……高位低位1
……高位低位并采用一种被称为“补码”的编码规则,对带符号的整数进行编码。44在补码系统中,凡正整数,其符号位后面的编码就是该数的“原码”——该数绝对值的二进制表示。例如,下面这个8位(一个字节)的补码
表示的整数为:+127。然而,对于负整数,符号位后面的编码是该数的“补码”——该数的“原码”取反后(“反码”)加1。例如,下面这个8位的补码表示的整数为:-1。0
1
1
1
1
1
11
高位低位7
6
5
4
3
2
10提示:一个n位补码的整数,由于符号位占用了1位,因此,该整数的二进制有效位只有n-1位!1
1
1
1
11
11
高位低位7
6
5
4
3
2
10获取负数的n位编码(即补码)的步骤如下:i)
获取原码——取该负数绝对值的n位二进制值;ii)获取反码——将上述原码中的各位取反;iii)
获取补码——将上述反码加1;45 例如,-1的8位补码的获取过程如下:i)-1的绝对值是1,其8位二进制值是10000001(叫做“原码”);ii)10000001的“反码”是11111110;(取反时符号位不变!)iii)加1后得11111111(“补码”);获取负数n位编码的方法:i)获取原码——取该负数绝对值的n位二进制值;ii)获取反码——将上述原码取反;iii)获取补码——将上述反码加1; 再如,-36的8位补码的获取过程如下:i)-36的绝对值是36,其8位二进制值是10100100(原码);ii)10100100的反码是11011011;iii)加1后得到补码是11011100;46 对于由0开头的补码,其原值的获取过程很简单:将符号位后面的n-1位二进制直接转换为十进制,即得该数的原值!由补码获取原值的步骤:i)获取反码——将其编码取反;ii)获取原码——将上述反码加1;iii)如果其编码的符号位为1,则为负数。 反之,一个n位补码的原值又是如何获取的呢? 方法是:与获取补码的过程相反——对补码取反、加1!下面以一个8位补码11101101为例,来观察其原值的获取过程:i)将其补码11101101取反,得反码:00010010;ii)将上述反码加1得其原码:00010011;由此可知,该补码的原值的绝对值为19。iii)由于该补码的符号位为1,因此,该数的原值是-19。47带符号整数的8位二进制编码十进制000000000000000011000000102000000113000001004000001015000001106000001117000010008......011111111278位(一个字节)补码最多可以表示256个带符号整数:-128~127带符号整数的8位二进制编码十进制10000000-12810000001-12710000010-126......11111110-211111111-14816位(两个字节)补码最多可以表示65536个带符号整数:-32768~32767带符号整数的16位二进制编码十进制000000000000000000000000000000001100000000000000102......00000000000001004......00000000111111112550000000100000000256.....010000000000000016384......011111111111111132767带符号整数的16位二进制编码十进制1000000000000000-327681000000000000001-32767......1111111111111110-21111111111111111-1495.关于数值的范围和溢出问题 由于计算机是通过预先设计好的固定硬件来处理二进制数的,因此,它所能处理的二进制数的位数是有限的——称为“有效位”或“数值范围”。 通常计算机中采用的有效位有:8位(1个字节,其整数的有效数为|27-1|);16位(2个字节,其整数的有效数为|215-1|);32位(4个字节,其整数的有效数为|231-1|)等。由于整数都使用固定个数的位进行存储,所以,当一次整数运算产生的值超出了有效位时,将导致该值“溢出”。下面以8位补码为例:01111111(+127)+00000011(+3)-----------------------------10000010(-126)10001000(-120)+11101111(-17)-----------------01110111(+119)同号相加的结果,若其符号位与两个加数的符号位不同,则为溢出!提醒:数据的溢出是悄悄发生的,计算机不进行运行时检查。预测数值的范围并为之分配合适的大小以免溢出,完全是程序员的责任!异号相加永不溢出!高位如有进位将被丢弃!50(二)非数值数据的编码非数值数据是指:字符(包括字母、数字、各种特殊符号)、逻辑值等数据。在这里,我们仅介绍字符、逻辑值的编码。逻辑值数据逻辑数据是指用于逻辑运算的数据。它们只有两个值:“真”和“假”,或者“是”和“非”。它们的编码没有统一的规定,一般可由其应用环境来决定:最简单的方法,只使用一个二进制位(bit)来表示它们:
0表示“真”;1表示“假”。但是,通常还是使用一个16或32个二进制位s来表示它们:
0表示“真”;1表示“假”。例如,C、C++使用4个字节(32位)来表示它们; 而Java语言则用2个字节(16位)来表示它们的。512. 字符数据 “字符”数据通常是指:用于文本(即文字)处理的数据。 它们包括各种文字及标点符号。 目前流行的字符编码有两种:ASCII码、Unicode码。(1)ASCII码
·概念 这是一种称为“美国信息交换标准码”的用于英文字符的编码。这种编码共收集了128种英文及标点符号字符(参见ASCII编码表)。它是一种采用7位二进制的编码(最多可表示27=128种字符)。 例如, 1000001——字符A的编码 1000010——字符B的编码 1100001——字符a的编码 1100010——字符b的编码52说明:由于二进制数的表示比较冗长,因此,在编码表中通常使用十进制或十六进制等方式来表示之。例如,字符A其编码是 1000001其十进制数为65其八进制为 101其十六进制为4153·具体实现 由于ASCII编码表采用7位二进制编码,所以在计算机中需要用一个字节(8位二进制)来保存。其中,最高位用于奇偶校验位(程序员不必理会它!)。例如,在一个字节中,字符A的编码是01000001(相当于十进制数为65、八进制为101、十六进制为41);字符B的编码是01000010(相当于十进制数为66、八进制为102、十六进制为42);·常用字符(需要熟记)在ASCII编码表中,常用字符及其编码对应如下:空格——00100000(其十进制值为32);数字字符‘0’~‘9’——00110000~00111001(其十进制值为48~57);大写英文字母A~Z——01000001~01011010(其十进制值为65~90);小写英文字母a~z——01100001~01111010(其十进制值为97~112);(大小写英文字母对应的编码相差32!这一点在以后编程时有用)提醒:ASCII码是一种用于英文字符集的编码,因此,它不能用于汉字!54(2)Unicode编码
Unicode码(“统一码”),一种可以表示世界上所有书面语言中字符的编码。它被设计为16位编码(最多可以表示65536个字符)。因此,在计算机中,它需要占用2个字节。为便于区别,其编码通常以\u开头的4位十六进制数表示:\u0000~\uFFFF。例如,中文的“欢迎”两个字符的编码是,\u6B22和\u8FCE。Unicode码收录了ASCII码(用于表示128个英文及标点符号字符),其编码从\u0000~\u007F(Unicode编码表中的前128个字符)。例如,英文字符“A”,其Unicode码值则是\u0041,如下所示:
00
10
0
01
0
01
1
01
01
16
B
2
2“欢”的Unicode码
01
0
0
0
0
0
1
00
0
00
00
0
0
0
4
155(3)汉字编码汉字在计算机中的编码问题,将涉及到三个编码:输入码、机内码和字形码。1)输入码利用标准键盘上的键(即,英文字母和数字等键)来进行汉字输入。这种由英文字母和数字组成的、用于汉字输入的编码方案被称为“汉字的输入码”。常用的汉字输入码有:①拼音码:以汉语拼音字母为基础的编码。②字形码:由汉语字形确定的编码。如,“五笔字形”等。③形音码:字形与拼音的组合。如,“首尾码”。④数字码:由数字组成的汉字编码。如,“区位码”、“国标码”。56“区位码”:它将国家标准局公布的6763个汉字分成94个区(从1开始编号,称为“区码”),每个区又分成94个位(从1开始编号,称为“位码”)。“区码”和“位码”的顺序连接就是“区位码”。如,汉字“万”的“区位码”是45,
82(2DH,52H),占2个字节。 区位码可以如下所示:万位码1
…82
…94区码1
.
.
45
.
.
9457“国标码”:它是从“区位码”演变而来的:分别在“区码”和“位码”上各加是32,即加上20H
。那么,“万”的“国标码”则是77,114(4DH,72H或4D72H)。
0
0
1
0
1
1
0
1
0
1
01
0
0
1
0
2
D
5
2例如,“万”的“区位码”是45,82(2DH,52H)。
01
0
0
1
1
0
1
0
11
1
0
0
1
0
4
D7
2582)机内码无论你使用哪一种汉字输入码来输入汉字,然而,这些输入法最终都会将你所输入的汉字转换成一种统一的编码,然后再将它们存储到计算机的存储器中。这种统一的编码就是汉字的“机内码”。汉字的“机内码”与英文字符的“机内码”ASCII码(只需占用一个字节且最高位为0)的存储有所不同。汉字的“机内码”需要占用两个连续的字节来存储: 第一个字节存放其“国标码”的高2位十六进制; 第二个字节存放其“国标码”的低2位十六进制; 并且将这两个字节的最高位都置“1”。提醒:将汉字机内码中两个字节的最高位置1,以便于区别ASCII码!
59由上可知,一个汉字的“机内码”需要占用两个字节:第一个字节存放“国标码”的高2位十六进制;第二个字节存放“国标码”的低2位十六进制;最后将这两个字节的最高位都置“1”。
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
4
D7
2
例如,“万”字的国标码是4D72H,如下图所示:
那么,它的机内码就是:CDF2H(4D72H+8080H)。
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
C
D
F
2这一位由0变160Unicode与机内码的问题:Unicode其实只是一个符号集,它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储。也就是说,它并非最终的机内码。它还需要操作系统将它转换为本地的机内码。通常,Unicode中的一个英文标点符号的“机内码”都是采用一个由0开头的字节来存储;而
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河南省郑州市2025届高考仿真卷英语试卷含解析
- 公司和个人汽车租赁合同
- 二零二四年度工程建设项目审计合同2篇
- 2024版高校毕业生就业援助服务合同2篇
- 2024年度工程质量检测与评估合同3篇
- 说课课件教学课件
- 新版个人承包经营合同
- 焊接加工合同范本
- 长城教学教学课件教学课件教学
- 白内障课件普瑞眼科
- 第12课《渔家傲 秋思》课件(30张PPT) 部编版语文九年级下册
- 全新版大学英语第二版综合教程2第七单元课文翻译
- 部编版五年级语文下册:非连续性文本阅读(含答案)人教部编版
- 译林版九年级上册英语Unit 6词汇运用专项练习-
- 肩周炎的锻炼课件
- DBJ51-T 188-2022 预拌流态固化土工程应用技术标准
- 220kv变电站构支架吊装施工方案
- 巾帼英雄-妇好
- 学校秋季运动会开幕式活动策划PPT模板
- 53求因数的个数与因数和公式课件
- 晋升呼吸内科副主任医师专业技术工作总结报告
评论
0/150
提交评论