版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机基础知识(2),12 数制及其运算 计算机内部是一个二进制的世界 不论程序还是数据,在计算机内部都是以二进制编码的形式表示,输入/输出采用十进制,计算机常用的数值 十进制、二进制、八进制、十六进制,常用的数值,015十进制数与二进制的对应关系 3 7 9 12 15,2、4、8、16位二进制能表示十进制的范围 ? 任意两个二进制相加、相减、相乘,怎么做?,0011,0111,1001,1100,1111,数值转换 1二进制转换为十进制数 (10101100.11)2=27+25+23+22+2-1+2-2 =128+32+8+4+0.5+0.25=(172.75)10,常用的数值,2十进
2、制转换为二进制数 方法:整数、小数分别转换 整数部分除2取余 将所有余数倒序排列 小数部分乘2取整 若不归0,则多算一位小数按“0舍1入” (157.425)10=(10011101.011011)2,计算机运算基础,二进制、十六进制之间的转换 4位合并成1位 1位扩充成4位 (1110 0001)2=(E1)16=E1H 45H= ( 0100 0101)2 十六进制转换为十进制 (E1)16=14*16+1=(224)10,124 二进制数的逻辑运算布尔代数,0 表示”假” ”非” 1 表示”真” ”是” 逻辑值 1.逻辑与(乘) “.” “AND” 两个条件都满足,结果才为真 00=0
3、01=0 10=0 11=1 英语=90 AND 英语四级=425 1101 00110000 1111= 0000 0011,计算机基础知识,2.逻辑或(加) “+” “OR” 两个条件只要有一个为真,结果就为真 0+0=0 0+1=1 1+0=1 1+1=1 英语=90 OR 英语四级=425 1101 0011+0000 1111=1101 1111 3.逻辑非 NOT “-“ 如果条件为真,逻辑非结果就为假_ _ 英语=90) 0=1 1=0,4.逻辑运算的先后顺序 逻辑非逻辑与逻辑或 真值表,计算机基础知识,加法器示例,计算机基础知识,A=1 B=0 C=1 A+B= BC= A+B
4、C= A+B= 1010 0101+0000 1011= 0011 1100+0000 1011= 1010 0101 0000 1111= 0011 1100 0000 1111=,1,0,1,0,1010 1111,0011 1111,0000 0101,0000 1100,任何信息包括数值、文字、声音、图像、视频等等在计算机内都是以二进制码的形式存放和处理的。将信息转换成“0”和“1”表示的二进制代码,这一过程称为数字编码。,1.3 信息在计算机内的表示,1.3 信息在计算机内的表示,数据是信息的载体;信息是数据经过加工处理后的结果。 数据为被计算机接受和处理的符号的集合. 数值数据 (
5、可以计算的数据) 非数值数据(文字、符号、图像、声音等) 1.3.1 数值在计算机中的表示 定点数表示一般的整数 浮点数表示很大或很小的数或小数 补码是负数在机器中的表示形式 1.3.2 字符信息在计算机中的表示 西文字符和汉字字符,在计算机中表示数要解决3个问题: 1.进制(二进制) 2.正负号的表示 符号位 0-正 1-负 +1011 01011 -1001 11001 3.小数点的表示 定点数 浮点数,定点数与浮点数,定点数与浮点数,定点数:假想小数点在某个约定的位置上。,定点整数 例如:+1011001,小数点位置,定点小数 例如:-0.1001011,小数点位置,定点数与浮点数,浮点
6、数:用类似科学计数法的方式表示数。,例如:+110.01 可以表示成 +11.00121 +1.100122 (规格化),尾数(定点小数),阶码(定点整数),尾数,阶码,机器数:原码、反码、补码,在计算机中,负数通常不用原来数值表示,而是用补码。为的是将减法转换为加法,以简化运算。,正数的原、反、补码相同:数值前加符号位 例如:+1001 原码 01001 反码 01001 补码 01001,负数的原、反、补码 例如:-1100 原码 11100(符号位1,数值不变) 反码 10011(数值按位求反) 补码 10100(反码加1),1.ASCII码 美国标准信息交换码,编码从0到127。,控制
7、字符: 031 (共32个) 普通字符:32127 (共96个) 7位二进制位的128种组合可表示128个字符。,1.3.2 字符信息在计算机中的表示,ASCII码共表示128个字符 在计算机内采用一个字节表示ASCII字符,最高位为0,例如,字母A的ASCII编码是65,对应的十六进制值是41H,在一个字节中的表示是:,问题: 字符有大小吗? 那要进行字符排序怎么办呢?,查看ASCII码,打开记事本程序,输入ASCII码字符和汉字。 将文件保存到E:盘,取名为AA.TXT文件名,文件类型为TXT(纯文本文件 )。 进入命令提示符状态,输入 DEBUG E:AA.TXT - D 即可查看输入字
8、符的ASCII码 输入-Q, EXIT 退出MS-DOS程序。,2. 汉字编码,汉字是象形字,计算机处理汉字,必须解决以下三个问题: 第一,是汉字的输入,即如何把结构复杂的方块汉字输入到计算机中去,这是汉字处理的关键之一; 第二,汉字在计算机内如何表示和存储,又如何与西文并存; 第三,如何将汉字的处理结果根据实际的要求从计算机的外部设备中输出。,2. 汉字编码,要想能在计算机中处理汉字,必须解决汉字的输入编码、存储编码、显示和打印字符的编码问题。 在汉字信息处理系统中,要进行如下代码的转换:输入码、国标码、机内码、字形码。,图1.2 汉字信息处理的流程图,在计算机中处理汉字,首先要解决汉字的输
9、入问题。英语26个字母的输入通过键盘上的键字就可以实现。而要借助键盘上有限的键字输入汉字,则必须使用编码机制。 输入码是解决汉字输入采用的编码,如“国标区位码”、“全拼”、“双拼”、“五笔”、“智能ABC”等输入编码。 请列举出其它的汉字编码? 每一种输入码之所以能存在,是因为各有其特点。如果有人问,哪种输入码最好,回答是“你熟练掌握的那种输入码就是最好的”。,汉字输入码,我国在1980年制定了信息交换用汉字编码字符集基本集作为国家标准GB2312-80编码字符集,称为国标码。 GB2312-80中规定了信息交换用的6763个汉字和682个符号 7445个 = 3755 + 3008 + 68
10、2 非汉字图形符号(682) (包括字母、数字和符号) 一级汉字(3755) 按拼音字母顺序存放 二级汉字(3008) 按偏旁部首的笔画顺序存放 1995年又颁布了汉字编码扩展规范(GBK)。GBK与GB 23121980国家标准所对应的内码标准兼容,同时在字汇一级支持ISO/IEC106461和GB 130001的全部中、日、韩(CJK)汉字,共计20902字。,国标码,在国家标准GB2312-80中,每个汉字采用双字节表示。每个字节只用ASCII码中的低7位,最高位为0。,例如,汉字“中国”的国标码在两个字节中的存放为:,中 5650H 国 397AH,0 1 0 1 0 1 1 0,0
11、1 0 1 0 0 0 0,0 0 1 1 1 0 0 1,0 1 1 1 1 0 1 0,国标码,机内码,国标码用2个字节表示,它不能直接在计算机内作为汉字的编码,主要是因为计算机按字节表示数据,没有标志区别某个字节是汉字编码的一部分还是ASCII字符的编码,为了以示区别,将国标码两个字节的最高位都置为“ 1”,做为汉字在计算机内的编码,来对汉字进行识别、存储、处理和传输,这种编码称为汉字的机内码。,例如,汉字“中国”在计算机内部 两个字节中的存放为:,中 D6D0H 国 B9FAH,1 1 0 1 0 1 1 0,1 1 0 1 0 0 0 0,1 0 1 1 1 0 0 1,1 1 1
12、1 1 0 1 0,问题: 汉字有大小吗? ”大”小”吗?,查看汉字机内码,打开记事本程序,输入汉字。 将文件保存到E:盘,取名为AA1.TXT文件名,文件类型为TXT(纯文本文件 )。 进入命令提示符状态,输入 DEBUG E:AA1.TXT - D 即可查看输入字符的ASCII码 输入-Q, EXIT 退出MS-DOS程序。,国标码和机内码解决了汉字的编码标准和存储表示,但还没有解决汉字的显示和输出问题。 字形码是以点阵的形式“画”出汉字字形的代码,将这些点阵代码存放在计算机中形成汉字点阵字库。显然,汉字字形点阵的行和列分得越多,描绘的汉字也就越逼真、细腻。但是存储空间占用的也就越大。常用
13、的汉字字形点阵有1616、2424、3232、6464、9696、128128、256256点阵等。,. # . . . . . . . . . . . . . . . . # . . . # . # . # . # . # . . . . # . . . . . . . . . . . . . . . . . . # . . . . . . . # . . . . . . . . . . . . . . . . . . # . . . . . # . . . . . # . . . . . # . . . . . . . . . . . . . . . . . . . . # . . . #
14、 . . . . . . . . . . . . . . # . . . . . . . . # . . . . . # . . . . . . . . . . . . . . # . # . . . . . . . # . . . . # . . . . . . . . . . . . . . # . . . . # . . . . . # . . . # . . . . . . . . . . . . . . # . . . . . . . # . . . # . . # . . . . . . . . . # #,1616点阵字模,汉字字形点阵中每个点的信息用一位二进制码来表示。对于16
15、 16点阵的汉字字形码,需要用32个字节(16 16 8 = 32)表示;64 64点阵的汉字字形码,需要用512个字节表示。,代码转换(前六行) 0100 0000 0000 0000 0010 0010 1010 1010 0001 0000 0000 0000 0000 0010 0000 0010 0000 0000 0000 0000 0100 0001 0000 0100,不同的字体(宋体.黑体等)对应着不同的字库. 在输出汉字时,先在相应的字库中找到所需字,然后送去输出.,6464点阵字模,幼圆字体,汉字处理过程中各种编码之间的关系,如下图所示。,自动转换,字节最高位置“1”,转
16、换(调用汉字字库),计算机中怎样区分ASCII码与汉字编码?,“A”的ASCII编码是41H 0100 0001 连(机内码为C1 AC H) 1100 0001 1010 1100 计算机在读取数据时,如果看到41H,知道它小于128就是标准ASCII,表示“A”,看到C1大于128就知道它后面有一个另外的编码,因此C1 AC一同构成一个整个的编码,在GB-2312字符集中表示“连”。,补充:造字程序,开始所有程序附件TrueType造字程序 (1)选择代码-输入码、机内码 (2)造字 -字型码 参考51FA (3)保存 问题: 刚造的字输入到一个文件中,将这个文件拷贝到另一台计算机中,刚造
17、的字能显示出来吗?,补充知识:字型信息库(字库) 矢量字库 点阵字库,点阵字库是把每一个汉字都分成1616或2424个点,然后用每个点的虚实来表示汉字的轮廓,常用来作为显示字库使用,这类点阵字库汉字最大的缺点是不能放大,一旦放大后就会发现文字边缘的锯齿。 矢量字库保存的是对每一个汉字的描述信息,比 如一个笔划的起始、终止坐标,半径、弧度等等。在显示、打印这一类字库时,要经过一系列的数学运算才能输出结果,但是这一类字库保存的汉字理论上可以被无 限地放大,笔划轮廓仍然能保持圆滑,打印时使用的字库均为此类字库。Windows使用的字库也为以上两类,在FONTS目录下,如果字体扩展名为 FON,表示该
18、文件为点阵字库,扩展名为TTF则表示矢量字库。点阵字库文件的图标为一个红色的“A”,矢量字库图标是两个“T”。,Unicode( Universal Multiple-Octet Coded Character Set ,通用多八位编码字符集)。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。 Java语言就用到了Unicode编码,从而实现了该语言的国际通用性。 在Unicode中,我们有很多方式将数字23383表示成程序中的数据,包括:UTF-8、UTF-16、UTF-32。例如,“汉字”对应的数字是0 x6c49和0 x5b57,而编
19、码的程序数据是: BYTE data_utf8 = 0 xE6, 0 xB1, 0 x89, 0 xE5, 0 xAD, 0 x97; / UTF-8编码 WORD data_utf16 = 0 x6c49, 0 x5b57; / UTF-16编码 DWORD data_utf32 = 0 x6c49, 0 x5b57; / UTF-32编码,Unicode编码(统一码、万国码、单一码),UTF-8的特点是对不同范围的字符使用不同长度的编码。编码方式如下: Unicode编码(16进制)UTF-8 字节流(二进制) 000000 - 00007F0 xxxxxxx 000080 - 0007F
20、F110 xxxxx 10 xxxxxx 000800 - 00FFFF1110 xxxx 10 xxxxxx 10 xxxxxx 010000 - 10FFFF11110 xxx 10 xxxxxx 10 xxxxxx 10 xxxxxx 例1:“汉”字的Unicode编码是0 x6C49。0 x6C49在0 x0800-0 xFFFF之间,使用用3字节模板了:1110 xxxx 10 xxxxxx 10 xxxxxx。将0 x6C49写成二进制是:0110 1100 0100 1001, 用这个比特流依次代替模板中的x,得到:11100110 10110001 10001001,即E6 B
21、1 89。 例2:Unicode编码0 x20C30在0 x010000-0 x10FFFF之间,使用用4字节模板了:11110 xxx 10 xxxxxx 10 xxxxxx 10 xxxxxx。将0 x20C30写成21位二进制数字(不足21位就在前面补0):0 0010 0000 1100 0011 0000,用这个比特流依次代替模板中的x,得到:11110000 10100000 10110000 10110000,即F0 A0 B0 B0。,Unicode编码(统一码、万国码、单一码),UTF-16编码以16位无符号整数为单位。编码规则如下: 如果U0 x10000,U的UTF-16
22、编码就是U对应的16位无符号整数(为书写简便,下文将16位无符号整数记作WORD)。 如果U0 x10000,我们先计算U=U-0 x10000,然后将U写成二进制形式:yyyy yyyy yyxx xxxx xxxx,U的UTF-16编码(二进制)就是:110110yyyyyyyyyy 110111xxxxxxxxxx。 为什么U可以被写成20个二进制位?Unicode的最大码位是0 x10ffff,减去0 x10000后,U的最大值是0 xffff,所以肯定可以用20个二进制位表示。例如:Unicode编码0 x20C30,减去0 x10000后,得到0 x10C30,写成二进制是:000
23、1 0000 1100 0011 0000。用前10位依次替代模板中的y,用后10位依次替代模板中的x,就得到:1101100001000011 1101110000110000,即0 xD843 0 xDC30。 UTF-32编码以32位无符号整数为单位。Unicode的UTF-32编码就是其对应的32位无符号整数。,Unicode编码(统一码、万国码、单一码),UTF-16编码以16位无符号整数为单位。编码规则如下: 如果U0 x10000,U的UTF-16编码就是U对应的16位无符号整数(为书写简便,下文将16位无符号整数记作WORD)。 如果U0 x10000,我们先计算U=U-0 x10000,然后将U写成二进制形式:yyyy yyyy yyxx xxxx xxxx,U的UTF-16编码(二进制)就是:110110yyyyyyyyyy 110111xxxxxxxxxx。 为什么U可以被写成20个二进制位?Unicode的最大码位是0 x10ffff,减去0 x100
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论