2018年计算机科学导论(董荣胜)4.ppt
4.6 硬 件 计算机硬件是构成计算机系统的所有物理器件、部件、设备,以及相应的工作原理与设计、制造、检测等技术的总称。广义的硬件包含硬件本身及其工程技术两部分。其中: 计算机系统的物理元器件包括:集成电路、印制电路板,以及其他磁性元件、电子元件等。 计算机系统的部件和设备包括:控制器、运算器、存储器、输入输出设备、电源等。 硬件工程技术包括:印制电路板制造、高密度组装、抗环境干扰、抗恶劣环境破坏等技术,以及在设计和制造过程中为提高计算机性能所采取的措施等。 计算机就是由计算机硬件和计算机软件组成的。硬件是计算机的“躯体”,软件是计算机的“灵魂”。 4.7 数据存储和表示 计算机用位的形式来表示数据。位(binary digit,二进制数字,缩写为bit)是存储在计算机中的最小数据单位,位表示二进制数字的0或1,8位表示1个字节(byte)。存储一个位需要用一个有两种状态的设备。例如,电子开关就能表示并存储位,通常用“开”(合上)状态表示“1”,用“关”(断开)表示“0”。现代计算机使用各种各祥的两态设备来存储数据。 在计算机中,数据和指令都是用二进制代码来表示的。二进制数的每一位只能是数字0或1,它只有形式的意义,对于不同的应用,可以附给它不同的含义。因此,可以用它来表示数值、字符、图像甚至声音,对这些数据,需要进行相应的编码。在需要呈现给用户时,再对它们进行解码。 下面分别介绍进位制数及其相互转换,原码、反码和补码及其转换,以及字符、字符串和汉字,图像和声音等数据的表示。 4.7.1 进位制数及其相互转换 在计算机中,只能存二进制数,因此,要保存一个十进制(Decimal)的数,也就是要保存一个对应的二进制数。由于计算机很难确定在内存中一个值的结束位置和另一个值的起始位置,因此,大多数计算机和程序都采用固定的宽度来避免这个问题,即每一个数都用相同的位数来表示。常用的有16位、32位和64位。 在一个16位的计算机中,若一个十进制数转换为二进制数后,不够16位,则在这个二进制数前加0,直到满16位为止。比如,十进制数2,其二进制数为10,在10前加14个0,即为:0000000000000010。 在实际的程序中,由于二进制数不直观。因此,在程序的输入和输出中,一般仍采用十进制数,而在分析计算机内部工作时,常用十六进制(Hexadecimal)数,这样,就要进行相应的转换。下面,分别介绍十进制与二进制,以及二进制与八进制(Octal),二进制与十六进制等几种常用的进位制数的表示及其相互转换。 1.十进制数与二进制数之间的转换 我们知道在表示十进制数的时候,从右边起的第1个数字是1(100 = 1),第2个数字是10(101 = 10),第3个数字是100(102 = 100),第4个数字是1000(103 = 1000),以此类推。如果我们要把十进制整数3254展开,我们很容易知道存在如下的关系,3254=3*103 +2*102 +5*101 +4*100 。 这样的关系同样存在二进制数中,只是这里的基数不是10,而变成了2。这时,从右边起的第1个数字就是1(20 = 1),第2个数字就是2(21 = 2),第3个数字是4(22 = 4),第4个数字就是8(23 = 8)了。从这一点出发,我们很容易找到十进制和二进制转换的方法。 (1)十进制数转换为二进制数 若R表示十进制整数,Kn-1 ,Kn-2 ,Kn-3 … K1 ,K0 表示二进制数的各位数,最低(右)端一位为K0, 最高(左)端一位为Kn-1。为了区分十进制数和二进制数,我们分别给十进制数和二进制数加上下标10和2,即有如下形式 (R)10 = (Kn-1Kn-2Kn-3…K1K0)2 ① 与上文提到的十进制的展开类似,我们可以将上式写为 (Kn-1Kn-2Kn-3…K1K0)2 = Kn-1*2n-1 +Kn-2*2n-2+Kn-3*2n-3+…+K1*21+K0*20 ② 显然,从等式右边看,除最后一项K0以外,其余每项都包含有2的因子,它们都能2除尽。故R除以2,它们的余数即为K0,商变为Kn-1*2n-2+Kn-2*2n-3+Kn-3*2n-4+K1*20,将得到的商再除以2,余数即为K1 ,商变为Kn-1*2n-3 +Kn-2*2n-4+Kn-3*2n-5+…+K2*20 ,这样依次下去,分别得到K2 ,K3 ,K4 … Kn ,最终得到二进制数的各位数。十进制数126的转换如下图所示。 根据上图,十进制数126可以用二进制数1111