五十问

目录

一. 数制知识 (3)

1. 什么是数制?常用的数制有哪些? (3)

2. 什么是基数?怎样用基数或符号区分不同数制的数? (3)

3. 什么是位权?如何用位权展开不同数制的数? (4)

4. 什么是二进制数?如何运算? (4)

5. 二进制数如何换算成其他数制的数? (5)

6. 什么是八进制数?怎样计算? (6)

7. 八进制数如何换算成其他数制的数? (6)

8. 什么是十六进制数?如何运算? (7)

9. 十六进制数如何换算成其他数制的数? (7)

10. 十进制数如何换算为其他数制的数? (8)

二. 编码的基本知识 (11)

11. 什么是编码?什么是字符集? (11)

12. 计算机常用的国际通用编码有哪些? (11)

13. 什么是Unicode码? (12)

14. 什么是UCS-2码?什么是UTF-8码? (12)

15. UCS-2码和UTF-8是怎样转换的? (12)

16. 什么是codepage? (13)

17. 什么是EBCDIC码? (13)

18. 什么是BCD码? (13)

19. 我国已经颁布的有关编码标准有哪些? (14)

20. 什么是“位”?什么是“字节”? (15)

21. 1个千字节KB是多少字节? (15)

22. 什么是“字”?什么是字长? (16)

23. 什么是ASCI I码? (16)

24. 如何用键盘输入ASCI I字符? (17)

25. 请介绍ASCI I码前32个码的含义! (18)

26. 什么是扩展ASCI I码? (18)

27. 怎样查找出任一字符的Unicode码? (19)

28. 如何把Unicode码转换为相应的字符? (21)

29. Unicode码和ASCII码是什么关系? (21)

三. 汉字编码知识 (22)

30. 请介绍计算机对汉字信息的处理过程? (22)

31. 请介绍处理汉字信息的要点? (22)

32, 什么是汉字的输入码? (23)

33. 什么是汉字的区位码? (23)

34. 怎样用区位码输入法输入汉字和字符? (24)

35. 请给出区位码表! (24)

36. 什么是汉字的交换码? (24)

37. 什么是汉字的国标码? (25)

38. 什么是汉字的内码? (25)

39. 什么是汉字的处理码? (25)

40. 区位码、交换码和内码各有什么用途? (25)

41. 区位码、交换码和内码之间怎样换算? (26)

42. Unicode码和国标码有什么关系? (27)

43. 汉字字符是怎样输出的? (27)

44. 什么是汉字字形码?有几种? (28)

45. 什么是点阵字形码? (28)

46. 什么是矢量字形码? (29)

47. 什么是轮廓字形码? (29)

48. 什么是汉字地址码 (29)

49. 什么是硬字库?什么是软字库? (29)

50. 小测验题 (29)

附录:汉字的区位码表(已删) (30)

《数制和编码知识50问》正文

一. 数制知识

1. 什么是数制?常用的数制有哪些?

2. 什么是基数?怎样用基数或符号区分不同数制的数?

答:基数(Radix)是一个计数制所包含的数字符号的个数。如果用R表示基数,则十进制(Decimal)的基数是10或R=10,因为十进制数可用的数字符号有:0、1、2、3、4、5、6、7、8、9,共有10个。二进制(Binary)的基数是2或R = 2,因为二进制数可用的数码只有0和1,计两个。同理,八进制(Octal)的基数是8;十六进制(Hexadecimal)的基数是16。

为了区分不同数制的数,约定对于任一R进制的数N,记作:(N)R。比如数字(1010)2、(703)8、(AE05)16 分别表示二进制数1010、八进制

数703和十六进制数AE05。

不加括号及下标的数,默认为十进制数,如256。人们也习惯在一个数的后面加上字母D(十进制)、B(二进制)、O(八进制)、H(十六进制)来表示其前面的数用的是什么进位制,如256D表示是十进制数256;1010B表示二进制数1010;AE05H表示十六进制数AE05。

当表示十六进制数时,也经常在数码的前面加以“&H”,例如。“&H20AE”表示这个数是十六进制的20AE。在C语言和另外一些场合,也在十六进制的数码前面加以“ox”,例如“ox4AD”表示这个数是十六进制数4AD。

在表格中或其他场合(如在BIOS中)也经常用“D”或“Dec”来表示十进制数;

用“B”或“Bin”来表示二进制数;用“Hx”或“Hex”表示十六进制数。

3. 什么是位权?如何用位权展开不同数制的数?

答:任何一个R进制的数都是由一串数码表示的,其中每一位数码所表示的实际值大小,除数字本身的数值外,还与它所处的位臵有关。该位臵上的基准值就称为位权(或称位值)。位权用基数R的i次幂表示。对于R进制数,小数点前第一位的位权为R0,小数点前第二位的位权为R1,小数点后第1位的位权为R-1,小数点后第2位的位权为R-2,依此类推。

以下是几个实例:

表2 几种数制的的位权

4. 什么是二进制数?如何运算?

答:二进制数的基数为2,即“逢二进一”。它含有两个数字符号:0、1。位

权为2i。

二进制数是计算机中采用的数制,因为计算机正是利用1和0这两个数来表示电子元件的两个稳定状态“开”和“关”的。二进制数的特点是运算规则简

单,适合逻辑运算。

二进制的计算规则非常简单。以加法为例,二进制加法规则仅有四条,

⑴加法:0+0=0;1+0=1;0+1=1;1+1=10(逢二进一)。如11+101=1000。

⑵减法: 0-0=0 1-0=1 10-1=1(有借位)

⑶乘法: 0×0=0 1×0=0 0×1=0 1×1=1

⑷除法0÷1=0 1÷1=1 0÷0=0 1÷0=0(无意义)

但是,二进制的明显缺点是数字冗长、书写量过大,容易出错、不便阅读。所以,在计算机技术文献的书写中,常用八进制、十进制或十六进制数表示。

5. 二进制数如何换算成其他数制的数?

答:不同数制之间的数值转换时,用计算机自带的计算器计算是很方便的。计算方法见第27题。以下只介绍用手工换算的方法。

把二进制数换算成十进制数时,用位权展开的方法;换算成八进或十六进制数时,以二进制数以小数点为界,按三位(改成八进位时)或四位(改成十六进位制时)为一组分段的方法。具体方法如下:

⑴二进制数换算成十进制数时,介绍两种方法

第一种方法—用按位权求和的方法。例如,当把二进制数10101110.11换

算为十进制的数时,其解见下表:

表3 二进制数转换为十进制计算表

即有(10101110.11)2=174.75或10101110.11B=174.75D

其中的下标“2”表示这是一个二进制数;后面的“B”也表示二进制数;“D”

则表示这是十进制数,通常也可以把这个“D”省略。

小数点以后的位权见下表。

表4 小数点后的位权关系

第二种方法—逐步累加法。利用“本位累计数=上位累计数×2+本位数(1或0)”的思路进行累加计算,不必考虑位权。例如,当把二进制数1101101换算成十进制数时,可以利用下述的简单计算就可以得出结果。

⑵二进制数换算为八进制数时,可以以小数点为界,把二进制数按三位

分为一组的方法进行计算:

例如:(10101110.11)2=(010 101 110.110)2=(256.6)8

或(10101110.11)B =(256.6)D

这里,以小数点为界,按三个二进制数数为一组划分时,若小数点前的高位是“10”,应该在前面加个“0”,写为“010”;在小数点后的“11”,不足三位,应该在后面加“0”,即把“.11”改写为“.110”。这是应该特别注意的。

⑶二进制数换算为十六进制数时,可以以小数点为界,把二进制数按四

位分为一组的方法进行计算:

例如:(10101110.11)2=(1010 1110.1100)2=(AE.C)16

或表示为(10101110.11)B = (AE.C)H

这里,以小数点为界,按四个二进制数为一组划分时,小数点前的高位不足四位时,应该在前面加“0”以补足四位;如果在小数点后的位数不足四位时,应该在数字的后面加“0”以补足四位。这是应该特别注意的。

另外,用计算器计算时,要把小数点前后的数分别进行计算。

6. 什么是八进制数?怎样计算?

答:八进位制数有0、1、2、3、4、5、6和7共8个数码元素,基数为8,

计算时是“逢八进一”。

还可以表示为(365.7)O = (245.875)D

八进位制的加法是“逢八进一,余数留下”;减法的规则是向上一位借一个顶八个。具体操作方法,可参照十六进制的介绍。

7. 八进制数如何换算成其他数制的数?

答:把八进制数换算成十进制数时,用位权展开的方法;换算成二进位时,是把八进制数直接展开成二进制数的方法;换算为十六进制数时,是把八进制数按二进制数展开后,再以小数点为界,按四位一组的方法分组,然后改

用十六制数表示即可。具体方法如下:

⑴八进制换算成二进制数的方法:用一拆三的方法,即把每一个八进位

数都转换为三位二进制数表示。

例:将八进制数604.05转换成二进制数时,结果为:

(604.05)8=(110 000 100.000 101)2

或(604.05)O = (110 000 100.000 101)B

⑵八进制数换算为十进制数的方法:用计算位权的方法。例如,当将八

进制数的345.6换算成十进制的数时,结果为:

或表示为(345.6)O = (229.75)D

⑶八进制数换算为十六进制数的方法:首先把八进制数换算为二进制数,再换算为十六进制数。例如,将八进制数5237.6换算为十六进制数时,可

以这样计算:

或表示为(5237.6)O = A9F.CH = oxA9F.C=&HA9F.C

8. 什么是十六进制数?如何运算?

答:十六进制数的基数R为16,即“逢十六进一”。它含有16个数字符号:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。其中A、B、C、D、E,F分别表示十进制数10、11、12、13、14、15。位权为16i。

⑴十六进制加减法:当十六进制数相加时,若某一位上的数码之和S小于16时,与十进制加法相同;加法运算时是满16进一,余数留下;减法时是借上一位是16,余数留下。具体方法如下;

⑵十六进制数的乘法可以用十进制数的乘法规则来计算,但结果必须用

十六进制数来表示。

⑶十六进制数的除法可以根据其乘法和减法规则处理。

9.十六进制数如何换算成其他数制的数?

答:把十六进制数换算成十进制数时,用位权展开的方法;换算成二进制数时,是把十六进位数直接用二进位制数展开的方法。如果是转换为八进制

数,再把这个二进制数以小数点为界,以三位为一组划分开,然后再转换为八

进制的方法。具体方法如下:

⑴十六进制换算成二进制数的方法:用“以小数点为界,一拆四”的方法,

即把每一个十六进位数都转换为四位二进制数表示。

例:将十六进制数6F.C转换成二进制数时,结果为:

(A6F.C)16 = (1010 0110 1111 .1100)2

或表示为(A6F.C)H = (101001101111.1100)B

⑵十六进制数换算为十进制数的方法:用计算位权的方法。例如,当将

十六进制数的A6F.C换算成十进制的数时,结果为:

其实,当把十六进制整数转换为十进制整数时,也可以用逐步累加的方法。思路是:本位的累加数等于上位累加数乘16,再加上本位数。对上题整数部

分的计算过程如下:

即(A6F)H=2671D 。

⑶十六进制数换算为八进制数的方法:首先把十六进制数换算为四位二进制数,再以小数点为界,按三位为一组重新组合后,再换算为八进制数。例如,将十六进制数A9F.6换算为八进制数时,可以这样计算:

最后这个表达式说明:表示十六进制数时,至少有4种表示方法;而表

示八进制数时,至少有两种方法。

10. 十进制数如何换算为其他数制的数?

答:十进制数换算为二进制、八进或十六进制时,对于整数和分数应

该用不同的方法进行转换。介绍如下:

⑴十进制整数转换为其他数制整数的方法:设其他数制的基数是R,则当把十进制整数转换为R进制整数时,是采用“除R取余”法。具体步骤是:把十进制整数除以R,得一商数和一余数;再将所得的商除以R,又得到一个新的商数和余数;这样不断地用R去除所得的商数,直到商数为零,即余数小于R

为止。

转换结果是这样表示的:把各次所得的余数按逆序排列起来就是所求的结果了。可简记为“除R取余;逆向排序”

例1. 将十进制整数375转换成二进制整数。

解:按“除2取余”法计算时,运算过程见左面的图示。

右面是用减法计算时的步骤,对二进制位权比较熟悉时,用这个方法也是可以的。要求根据被减数的大小适当选择减数,这个减数应该是位权的值,用

过的位权位是“1”;没有用过的是“0”。

如果你感到用上述连除的方法不方便,也可以用分散除法来计算。见下

面的计算步骤:

例2. 把十进制整数684转换为八进制数。

解:按“除八取余”法的计算过程如下:

应提请注意的是:在数字684后面的是英文字母o,不是阿拉伯数字零。

例3. 把十进制数2671转换为十六进制数

解:方法是:将十进制数除以16,商是166,余数为15;把商166再除以16,其商是10,余数6。因为商是10,已经小于16了,不能再除了。因此,应该把这个10当作十六进制数的首位,再按逆顺序取余数6和15,合起来得”A6F”,即有2671D = A6FH ,下式就是计算过程。

(2)十进制小数转换为其他数制小数的方法

把十进制小数转换为基数为R的小数时,其方法是:用基数乘以十进制小数,取出乘积中的整数(对二进制数是0 或 1;对八进制数是0~7;对十六进制数为0~F)后,继续用R乘剩下的小数,再次取出整数……。如此反复,直至剩下的小数为零或者取够所需的位数为止。计算结果是:把取出来的整数按正顺序排列在小数点后就行了。具体步骤见下述各例题。

例1. 将十进制小数0.75和0.67转换成二进制小数。

解:其结果是0.75D=0.11B;0.67D = 101010B。详见下面的计算步骤。

例2 将十进制数0.75和0.63转换为八进制数

解:结果是0.75D = 0.60O;0.63D = 0.5024O。计算过程如下:

例3 把十进制小数0.75和0.67换算为十六进位制小数

解:0.75D =0.CH ;0.67D =0.AB8H ,运算步骤如下:

如果你感到用连乘法不方便,或者觉得转换后的有效位数太少,也可以用

分散乘法计算。步骤如下:

二. 编码的基本知识

11. 什么是编码?什么是字符集?

答:计算机的芯片(包括CPU和内存条等)是逻辑电子器件,是由亿万个晶体管组成的大规模集成电路,这些晶体管在高电位时接通;低电位时断开。人们正是利用晶体管的这种开关特性进行信息交流,并制成了计算机。因为在通讯技术领域和在电脑技术中,是把接通定为“1”;把断开定为“0”的。所以,如果电路连续接通两次,就是两个“1”,即“11”;如果接通两次后中间断了一次,而后又接通了,这就是“1101”。如果通讯的双方共同商议好:什么样的数字代表什么意思或代表什么符号,只要由一方发出一组用“1”和“0”组成的数码时,对方就知道是什么意思或什么符号了。这就是编码(Coding)的基本概念。

在计算机中,数字、符号、图形、语音等信息都是用“1”和“0”这两个最基本的状态符号来表达、存储和传输的,因为计算机只认识机器语言,即由“0”

和“1”码组成的语言。

用“0”和“1”这两个状态符号做出不同的组合,以表示不同的字符(Character),这就是编码。例如,在ASCI I编码中,用“1000001”这种组合表示大写字母“A”;用“0110001”这种组合表示数字“1”。把各种状态符号的组合对应的字符汇编起来,就是字符集或符号集。当然如果用二进制数表示编码,就太麻烦了,因此,编码大都用十进制数或16进制数表示。

12. 计算机常用的国际通用编码有哪些?

答:目前最通用的是ASCII码,它是用来表示英文字符的一种编码规范,是在信息领域中的一种国际通用的编码。我国也不例外。

ASCI I码是单字节编码,每个字节由7位二进制数组成,最高位(b7)为“0”。因此,编码范围是0~127,即有128个字位。人们把这种编码称为基本ASCI I码或标准ASCI I码。详细情况可参见有管ASCI I编码的问答。

由于基本ASCI I码的范围有限,各个国家和地区为了适应自己的需要,大都在ASCI I码的基础上编制了自己的编码,很不统一。为此,国际上诞生了

Unicode码。

Unicode码是国际上几个大的电脑硬件和软件制造商联合制定的一种编码,其版本已经是unicode 5.0或以上了。另外,国际标准化组织(ISO)和国际电工委员会(IEC)也有相应编码标准,名称是“通用多八位编码字符集”,编号是ISO/IEC 10646,目前已经是ISO/IEC 10646:2003或以上了。这些组织制定的相应编码方法都是相同的,也是国际上通用的。不过,人们都叫它为Unicode 码,也称UCS(Universal character Set)码或ISO/IEC 10646通用字符集。

我国的GB1300标准与ISO/IEC 10646相对应,即我国等同采用ISO/IEC

10646标准。

这种编码有两种格式:UCS-2和UCS-4。顾名思义,UCS-2就是用两个字节编码,UCS-4就是用4个字节编码。不过,目前实际使用的是UCS-2。这种编码的每个字符是由16位二进制数表示的。所以,理论上说,它可以有2^16=65536个码位。基本上可以涵盖世界上所有的语言和字符,当然也包括中文字符。

在计算机中的“字符映射表”就是Unicode的字符集。这种编码有汉字20902个,编码范围是4E00~9FFF。但是,Unicode码和我国的标准GB2312并不兼容。例如,“谦”字的区位码是十进制数3911;而Unicode码是十进制数

35878。

13. 什么是Unicode码?

答:见上一问。

14. 什么是UCS-2码?什么是UTF-8码?

答:UCS只是一个字符集,如果直接用它进行传输和处理时就遇到以下问题:因为用一个字节表示的ASCII码早已广泛应用,UCS-2码又在标准ASCII码的基础上另外增加一个全部为零的字节,使本来是一个字节的编码变成了两个字节,徒添麻烦,人们感到不方便。更重要的是:在C语言和很多类Unix系统里面,一个字节的ASCI I码往往有控制作用,可以做转意字符,在文件或库函数里有特殊的作用,而两字节的Unicode码则无法应用。此外,不同的系统平台的设计理念不同,对编码的要求也不完全一致。例如,同是一个Unicode编码U+4E59,苹果机可能认为是“奎”字;PC机则认为是“乙”字。为了解决这些问

题,UTF出现了。

UTF(UCS Transformation Format)是UCS 转换格式的意思,怎样转换呢?有许多方法,例如:UTF-8、UTF-16小尾序(Unicode)、UTF-16大尾序(Unicode

big-enddian)、UTF-32、UTF-7等等。

最常用的方法之一是UTF-8码转换法,这种方法这是一种变长编码,它将基本ASCII字符仍用7位编码表示,占用一个字节(首位补0)。而遇到与其他Unicode 字符混合的情况,将按一定算法转换,每个字符使用1-3个字节编码,并利用首位为0或1进行识别。这样对以7位ASCII字符为主的西文文档就大大节省了编码长度。它既保留了Unicode的优势,又能够与ASCII兼容。

15. UCS-2码和UTF-8是怎样转换的?

答: UCS-2是一个双字节的Unicode字符集,但是,在使用中存在以上问题。因此,出现了UTF-8,UTF-8的编码字节数则是可变的,理论上说它可以用1~6个字节表示,这就解决了以上的难题。怎么变呢?

对基本ASCII码来说, UTF-8用一个字节来表示,即它和基本ASCII码兼容;对位于0080H~07FFH范围内的UCS-2编码,用两个字节表示;对于汉字来说(在UCS-2中,它在0800H~FFFFH范围内),UTF-8用三个字节表示。在下表中列出了Unicode编码范围和与之对应的UTF-8编码模板。只列出了1~3个字节的情况。当进行转换时,其中的红色数字是必须保留的,打“×”的二进制

数是由UCS-2编码依序移臵过来的:

表5 UCS-2转换为UTF-8的模板

例 1:已知“A”字的ASCII码是41H,求用UTF-8表示的“A”字的编码。

解:数41H是处于0000H~007FH的范围内的数,所以,应该用一个字节表示。因为16进制数41H用二进制数表示时是01000001,套用上表的模板,用UTF-8表示时,UTF-8的编码也是01000001。

例 2:已知中文“汉”字的UCS-2编码是6C49。求UTF-8对“汉”字的编码。

解;6C49在0800-FFFF之间,所以,从上表可知,在UTF-8中,“汉”字肯定要用3字节的模板表示。因为将6C49写成二进制时是:0110 110001 001001,套用上表的模板,“汉”字的UTF-8的编码就是11100110 10110001

10001001,即为E6 B1 89。

16. 什么是codepage?

答:codepage就是各国的文字编码和Unicode之间的映射表。因为编码在世界范围内都统一了,但是,各个国家或地区的编码仍然存在着,为了兼容原先各国的文字编码,必须有此类映射表。简体中文和Unicode的映射表就是CP936。即codepage=936 简体中文GBK。

如汉字的“大”字,其国标码是3473H,在UCS的编码为00005927H,即在00组,00面,59H行,第27H字位上。这个换算关系,在Codepage936 中可以查

到。

17. 什么是EBCDIC码?

答:尽管ASCI I码是计算机世界的主要标准,但在许多IBM大型机系统

上却没有采用。在IBM

的System/360计算机中,IBM研制了自己的8位字符编码——EBCDIC码(Extended Binary Coded Decimal Interchange Code,扩展的二-十进制交换码)。该编码是对早期的BCDIC 6位编码的扩展,其中一个字符的EBCDIC码占用一个字节,用8位二进制码表示信息,一共可以表示出256 种字符。

18. 什么是BCD码?

答:BCD(Binary Coded Decimal)码是用二进制数表示十进制数的方法,也就是说,它是讨论怎样用一种数制的数来表示另一种数制的数的方法的,因此,经常把BCD码称为代码。但是,也经常称之为编码。而本问答集所讨论的编码是怎样把文字符号用数字编码的问题。因此,这两种编码并不是一回事。

也不是本问答集的主题。但是,还是需要介绍一下BCD码。

为什么需要BCD码呢?因为人们在生活中最熟悉的计数制是十进制,而在计算机处理数据时是用二进制的,因此,BCD码的二进制数的形式可以满足数字系统的要求;BCD码的十进制的形式,可以适应人们的计数习惯。

BCD码有8421码、5421码、5211码、2421码和余3码等几种,但是,最常用的是8421码。在下表中列出了几种数制中的个别数跟8421BCD码的对照。

表6 8421BCD码和其他数制的关系

由此表可以看出,8421BCD码跟二进制数在十进制数0~9的范围内是完全对应的。从10以后就不相同了。也就是说BCD码是由“1001”加1后,直接进位为“1 0000”的。之所以出现这种情况,是因为8421BCD码的编码规定造成的。因为BCD码规定用二进制数表示十进制数时,不管十进制数的位权是什么,只要把这个十进制数转换成二进制数就可以了。例如,把十进制数“23.5”直接改

写为“0010 0011.0101”就是BCD码了。

这里所说的“8421”实际上就是四位二进制数的权。因为根据8421码的规定,为了表示十进制数中的任意一串数,只用四位二进制数就可以了。四位数可以组合为16种状态,足以表示十进制数的十个数了(如果用三位,只能组合成八种状态,就不够)。因此,四位二进制数的最后六个数不被采用,称它们是8421BCD码中非法的数。这六个非法数是1010,1011,1100,1101,1110,1111。

例1:写出十进制数19的BCD码。

解:由上表知19D=(0001 1001)BCD

例2:写出十进制数489.15的8421BCD码。

解:(489.15)10=(0100 1000 1001.0001 0101)BCD

例3:将(0001 1011.0010 0101)BCD码转换为等值的二进制数。

解:不能求解,因为“1011”在8421BCD码中是非法的。

例4:将二进制数01000111转换为BCD码。

解:(01000111)B = (71)D=(0111 0001)BCD

19. 我国已经颁布的有关编码标准有哪些?

答:目前,汉字字符集有如下几种:

⑴ GB 2312-80汉字编码:GB2312码全称《信息交换用汉字编码集——基本集》,标准号为GB2312-80,是中国国家标准汉字信息交换用编码,习惯上称国标码,新加坡也使用这一编码。共有7445个图形字符。其中汉字6763个,汉字以外的图形字符682个。详见有关区位码、国标码的问答。

⑵ GBK编码(Chinese Internal Specification): GBK(是“国家标准扩展”的意思)全称《汉字内码扩展规范》,是全国信息技术标准化技术委员会

1995年12月1日制订的。

GBK向下与GB2312-80编码兼容,向上支持ISO10646.1国际标准。共收录汉字21003个、符号883个,并提供1894个造字码位,简、繁体字融于一库。

IBM等大公司都支持这个标准。

⑶ CJK编码:是包含在ISO/IEC 10646标准的一部分。其中包含了中、日、韩统一的象形文字27484个。简称CJK字符,即中日韩三国的字符编码集。

⑷ GB18030-2000编码: GB18030-2000编码标准是在原GB2312-80编码标准基础上扩展而成的。采用单字节、双字节和四字节三种方式编码,编码空间达160多万个。基本平面的汉字数达27533个。同时还收录了藏文、蒙文、维

吾尔文等主要的少数民族文字。

GB18030-2000支持全部CJK统一汉字字符,也解决了内地使用GB码与港台地区使用BIG-5码间转换不便的状况。GB18030-2000的修订版GB18030-2005又

有所扩展,有70244个汉字。

⑸ GB 12345—90《信息交换用汉字编码字符集第一辅助集》:该标准共收

录了6866个汉字,纯繁体字有2200多个。主要是为古籍整理用的。

⑹ BIG-5: BIG-5码是通行于台湾、香港地区的一个繁体字编码方案,俗

称“大五码”。

20. 什么是“位”?什么是“字节”?

答:二进制数是由“1”和“0”组成的,也就是说,二进制数中0和1是构成二进制数的最小单位,也是计算机传递信息的最小单位,我们把这个最小单位称为位(bit),也称比特,符号为b 。每个位不是“1”就是“0”,或者说“1”占一个位;“0”也占一个位。各个位的名称、位权和相当的十进制数见下表。

表7二进制数的位和位权

在计算机中,每8个位组成一个字节,例如上表的二进制数有8位,就构成了一个字节(Byte),字节的符号是B。一个英文符号一般用一个字节表示;

一个汉字至少要用两个字节表示。字节是存储器中保存数据的最小单位。

21. 1个千字节KB是多少字节?

答:由于计算机使用二进制数,2的10次幂(等于十进制数的1024)与十进制数的1000近似,所以,在计算机中“千字节”是按二进制数定义的,即有

1KB=2^10 B=1024 B。所以,1MB=2^20B=1048576B=1024KB;同理,

1GB=2^30B=1024 MB ;1TB=2^40B=1024GB。

其中KB、MB、GB、TB分别称为“千字节”、“兆字节”、“吉字节”和“太字节”,都是千倍关系。但是,在有些场合(如硬盘商)把1KB当作1000B;余依此类推。因此,因为使用方法不同,经常发生名义字节和实测字节不一致的情况

发生。

还应该提醒的是:在计量单位的国家标准中,“ k”是词头符号,应该用小写,可是,在计算机中,似乎它和兆(M)平起平坐了,都是大写。

22. 什么是“字”?什么是字长?

答:字(Word)是计算机进行信息交换、处理、存储的基本单元。一条指令或一个数据信息,称为一个字。也就是说,字是指计算机一次并行处理的

一组二进制数,它由若干个字节组成。

一个字所包含的位数称为字长(Word Length)。字长不是固定值,跟CPU 的型号有关。曾经有过8、16和32位之分,目前主流计算机都是64位的。当我们说计算机是32位时,就是指的是这台计算机的CPU的字长是32位。或者说这台计算机的CPU能在单位时间内处理字长为32位(即4个字节)的二进制

数据。

相关文档
最新文档