1.1 计算机基础
计算机(Computer)是一种能按照某些预定的程序(这些程序往往体现的是人类的意志)对输入到其中的信息进行处理,并将处理结果输出的高度自动化的电子设备。本节将介绍计算机应用的基础知识,为读者步入本书后面知识的学习打下基础。
知识点讲解:
1.1.1 中央处理器
中央处理器(Central Processing Unit,CPU)是一块超大规模的集成电路,通常是一台计算机的运算核心和控制核心,主要包括算术和逻辑单元(Arithmetic and Logic Unit,ALU)和控制器(Control Unit,CU)两大部件。此外,还包括若干个寄存器和存储器,以及用于实现它们之间联系的数据、控制及状态总线。CPU与内部存储器和输入/输出设备合称为电子计算机三大核心部件,其功能主要是执行计算机指令以及处理计算机软件中的数据。计算机的性能在很大程度上由CPU的性能决定,而CPU的性能主要体现在其运行速度上。
1.1.2 比特和字节
1.比特
比特音译自英文名词bit。在现实应用中,比特是表示信息量的一种单位。二进制数中的位表示信息量的度量单位,为信息量的最小单位。二进制数中的一位所包含的信息就是1比特,如二进制数0100就是4比特。在计算机应用中,二进制数0和1是构成信息的最小单位,被称作“位”或“比特”。例如数字化音响中用电脉冲表达音频信号,“1”代表有脉冲,“0”代表脉冲间隔。如果波形上每个点的信息用4位一组的代码表示,则称4比特,比特数越大,表达的模拟信号就越精确,对音频信号的还原能力就越强。
2.字节
字节(Byte)是计算机信息技术用于计量存储容量的一种计量单位,有时也表示一些计算机编程语言中的数据类型和语言字符。
在计算机应用中,由若干比特组成1字节。字节由多少比特组成取决于计算机的自身结构。通常来说,微型计算机的CPU多用8位组成1字节,用以表示一个字符的代码,构成1字节的8位被看作一个整体,字节是存储信息的基本单位。大多数情况下,计算机存储单位的换算关系如下所示。
1B=8bit
1KB=1024B
1MB=1024KB
1GB=1024MB
上述关系中各个单位的具体说明如下所示。
❑ B表示字节。
❑ bit表示比特。
❑ KB表示千字节。
❑ MB表示兆字节。
❑ GB表示吉字节。
1.1.3 二进制
二进制是计算技术中被广泛采用的一种数制,是使用0和1两个数码来表示数字的数制。二进制的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼茨发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一种非常微小的开关,用“开”表示1,用“关”表示0。因为只使用0、1两个数字符号,所以二进制非常简单方便,易于用电子方式实现。
下面介绍如何从十进制转换成二进制。
❑ 正整数转换成二进制:转换原则是除以2取余,然后倒序排列,高位补零。也就是说,将正的十进制数除以2,将得到的商再除以2,依次类推,直到商为0或1时为止,然后在旁边标出各步的余数,最后倒着写出来,高位补零即可。例如,为了将十进制数字42转换为二进制,将42除以2,根据余数得到010101,然后将得到的余数倒着排一下,就会得到数字42对应二进制数是101010。但是因为计算机内部用于表示数的字节单位是定长的,如8位、16位或32位,所以当位数不够时,需要在高位补零。前面将42转换成二进制数时得到的结果是6位的101010,在前面缺少两位,所以将十进制42转换成二进制的最终结果是00101010。
❑ 负整数转换成二进制:转换原则是先将对应的正整数转换成二进制,对二进制取反,然后对结果加1。以十进制负整数-42为例,将42的二进制形式(00101010)取反,得到的结果是11010101,然后再加1,结果是11010110。
❑ 二进制整数转换成十进制:转换原则是先将二进制数字补齐位数,首位如果是0,就代表正整数;首位如果是1,则代表负整数。先看首位是0的正整数,补齐位数以后,获取“n×2m”的计算结果,其中上标“m”表示二进制数字的位数,“n”表示二进制的某个位数。将二进制中的各个位数分别实现“n×2m”计算,然后将计算结果相加,得到的值就为十进制。比如,将二进制1010转换为十进制的过程如下所示:
二进制 1 0 1 0
补齐位数 0 0 0 0 1 0 1 0
进行“n×2m”计算0×270×260×250×241×230×221×210×20
计算结果 0 0 0 0 8 0 2 0
将各位求和的结果是10。所以,将二进制1010转换为十进制的结果是10。
如果要转换的二进制数补足位数后首位为1,表示这个二进制数是负整数。此时就需要先进行取反,再进行换算。例如,二进制数11101011的首位为1,那么先取反,得到-00010100,然后按照上面的计算过程得出10100对应的十进制数为20,所以二进制数11101011对应的十进制数为-20。
1.1.4 编码格式
1.ASCII格式
美国信息交换标准代码(American Standard Code for Information Interchange,ASCII)是基于拉丁字母的一套计算机编码系统,主要用于显示现代英语和其他西欧语言。ASCII是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。
一个英文字母(不分大小写)占1字节的空间,一个中文汉字占2字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制后,最小值为0,最大值为255。例如,一个ASCII码就是1字节。
2.Unicode格式
Unicode(又称统一码、万国码或单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode是为了解决传统的字符编码方案的局限性而产生的,它为每种语言中的每个字符设定统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
最初的Unicode编码采用固定长度的16位,也就是2字节代表一个字符,这样一共可以表示65536个字符。显然,要表示各种语言中所有的字符,这是远远不够的。Unicode 4.0规范考虑到了这种情况,定义了一组附加字符编码,附加字符编码采用两个16位来表示,这样最多可以定义1048576个附加字符,在Unicode 4.0规范中只定义了45960个附加字符,在Unicode 5.0版本中已定义的字符有238605个。
Unicode只是一种编码规范,目前实际实现的Unicode编码只有3种——UTF-8、UCS-2和UTF-16。这3种Unicode字符集之间可以按照规范进行转换。
3.UTF-8格式
UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。UTF-8由Ken Thompson于1992年创建,现在已经标准化为RFC 3629。UTF-8用1~6字节编码Unicode字符,用在网页上,可以统一页面显示的中文简体及其他语言(如英文、日文、韩文)。一个UTF-8英文字符等于1字节。一个UTF-8中文(含繁体)字符,少数占用3字节,多数占用4字节。一个UTF-8数字占用1字节。