1.4 计算机中的信息表示
1.4.1 计算机中数的表示
在计算机中的信息都是用二进制进行表示的,在二进制中进行数的编码时,将数分为定点数和浮点数。在计算机过程中,小数点位置固定的数叫定点数,小数点位置浮动的数叫浮点数。
定点数常用的编码方案有原码、反码、补码、移码4种。
1.4.2 计算机中非数值数据的表示
信息一般表示为数据、图形、声音、文本和图像,在计算机中只能识别二进制,因此需要对其进行编码。如字母和常用符号的编码、汉字编码等。
1.4.3 进位计数制
数制是指用一组固定的符号和统一的规则来表示数值的方法。其中,按照进位方式计数的数制称为进位计数制。
进位计数制中每个数码的数值不仅取决于数码本身,其数值的大小还取决于该数码在数中的位置,如十进制数828.41,整数部分的第1个数码“8”处在百位,表示800;第2个数码“2”处在十位,表示20;第3个数码“8”处在个位,表示8;小数点后第1个数码“4”处在十分位,表示0.4;小数点后第2个数码“1”处在百分位,表示0.01。也就是说,处在不同位置的数码所代表的数值不相同,分别具有不同的位权值,数制中数码的个数称为数制的基数,十进制数有0、1、2、3、4、5、6、7、8、9共10个数码,其基数为10。
设R表示基数,则称为R进制。使用R个基本的数码,Ri就是位权,其加法运算规则是“逢R进一”,任意一个R进制数D均可以展开表示为:
上式中的Ki为第i位的系数,可以为0,1,2,…,R-1中的任何一个数,Ri表示第i位的权。表1-2所示为计算机中常用的几种进位计数制的表示。
表1-2 计算机中常用的几种进位数制的表示
1.4.4 不同数制之间的相互转换
1.非十进制数转换为十进制数
将二进制、八进制和十六进制数转换为十进制数时,只须用该数制的各位数乘以各自位权数,然后将乘积相加,用按权展开的方法即可得到对应的结果。
2.十进制数转换成其他进制数
将十进制数转换成二进制数、八进制数和十六进制数时,可将数字分成整数和小数分别转换,然后再拼接起来。
例如,将十进制数转换成二进制数时,整数部分采用“除2取余倒读”法,即将该十进制数除以2,得到一个商和余数(K0),再将商数除以2,又得到一个新的商和余数(K1),如此反复,直到商是0时得到余数(Kn-1);然后将得到的各次余数,以最后余数为最高位,最初余数为最低依次排列,即Kn-1…K1 K0,这就是该十进制数对应的二进制整数部分。
小数部分采用“乘2取整正读”法,即将十进制的小数乘2,取乘积中的整数部分作为相应二进制小数点后最高位K-1,取乘积中的小数部分反复乘2,逐次得到K-2K-3…K-m,直到乘积的小数部分为0或位数达到所需的精确度要求为止;然后把每次乘积所得的整数部分由上而下(即从小数点自左往右)依次排列起来(K-1K-2…K-m),即为所求的二进制数的小数部分。
同理,将十进制数转换成八进制数时,整数部分除以8取余,小数部分乘8取整;将十进制数转换成十六进制数时,整数部分除以16取余,小数部分乘16取整。
3.二进制数转换成八进制、十六进制数
二进制数转换成八进制数所采用的转换原则是“3位分一组”,即以小数点为界,整数部分从右向左每3位为一组,若最后一组不足3位,则在最高位前面添0补足3位,然后将每组中的二进制数按权相加得到对应的八进制数;小数部分从左向右每3位分为一组,最后一组不足3位时,尾部用0补足3位,然后按照顺序写出每组二进制数对应的八进制数即可。
二进制数转换成十六进制数所采用的转换原则与上面的类似,为“4位分一组”,即以小数点为界,整数部分从右向左、小数部分从左向右每4位一组,不足4位用0补齐即可。
4.八进制、十六进制数转换成二进制数
八进制数转换成二进制数的转换原则是“一分为三”,即从八进制数的低位开始,将每一位上的八进制数写成对应的3位二进制数即可。如有小数部分,则从小数点开始,分别向左右两边按上述方法进行转换即可。
十六进制数转换成二进制数的转换原则是“一分为四”,即把每一位上的十六进制数写成对应的4位二进制数即可。
1.4.5 二进制数的算术运算
1.二进制的算术运算
二进制的算术运算也就是通常所说的四则运算,包括加、减、乘、除,运算比较简单,其具体运算规则如下。
·加法运算:按“逢二进一”法,向高位进位,运算规则为:0+0=0、0+1=1、1+0=1、1+1=10。
·减法运算:减法实质上是加上一个负数,主要应用于补码运算,运算规则为:0-0=0、1-0=1、0-1=1(向高位借位,结果本位为1)、1-1=0。
·乘法运算:乘法运算与我们常见的十进制数对应的运算规则类似,规则为:0×0=0、1×0=0、0×1=0、1×1=1。
·除法运算:除法运算也与十进制数对应的运算规则类似,规则为:0÷1=0、1÷1=1,而0÷0和1÷0是无意义的。
2.二进制的逻辑运算
计算机所采用的二进制数1和0可以代表逻辑运算中的“真”与“假”“、是”与“否”和“有”与“无”。二进制的逻辑运算包括“与”“或”“非”“异或”4种。
·“与”运算:“与”运算又称为逻辑乘,通常用符号“×”“∧”“·”来表示。其运算法则为:0∧0=0、0∧1=0、1∧0=0、1∧1=1。通过上述法则可以看出,当两个参与运算的数中有一个数为0时,其结果也为0,此时另一个数是没有意义的。只有当数中的数值都为1时,结果为1,即只有当所有的条件都符合时,逻辑结果才为肯定值。
·“或”运算:“或”运算又称为逻辑加,通常用符号“+”或“∨”来表示。其运算法则为:0∨0=0、0∨1=0、1∨0=1、1∨1=1。该法规表明只要有一个数为1,则结果就是1。
·“非”运算:“非”运算又称为逻辑否运算,通常是在逻辑变量上加上划线来表示,如变量为A,则其非运算结果用表示。其运算法则为:=1、=0。
·“异或”运算:“异或”运算通常用符号“”表示,其运算法则为:00=0、01=1、10=1、11=0。该法规表明,当逻辑运算中变量的值不同时,结果为1;而变量的值相同时,结果为0。