第二章数据编码和数据运算1

《第二章数据编码和数据运算1》由会员分享,可在线阅读,更多相关《第二章数据编码和数据运算1(49页珍藏版)》请在文档大全上搜索。
1、第二章 数据编码和数据运算n2.1数据与文字的编码数据与文字的编码n 数字计算机中采用二进制的数据表示方式,因为二进制数能方便可靠地用数字电路的逻辑电平表示。n 在计算机中表示的二进制数据称为机器数。它是一系列位数固定而且数量有限的二进制代码,表示的数值范围也是有限的。计算机中表示的机器数是一系列离散的数据。一个机器数所代表的实际数值称为真值 2.1.1 数制的转换n十进制数采用十个计数符号计数规则n逢十进一一个n位的十进制数x0 x1xn-2 xn-1代表的数值为:x0*10n-1 + x1 * 10n-2 + + xn-2 * 101 + xn-1 * 100二进制数n采用2个计数符号n逢
2、2进1n一个n位的二进制数x0 x1xn-2 xn-1代表的数值为:x0*2n-1 + x1 * 2n-2 + + xn-2 * 21 + xn-1 * 20r进制数n采用r个计数符号n逢r进1n一个n位的r进制数x0 x1xn-2 xn-1代表的数值为:x0*rn-1 + x1 * rn-2 + + xn-2 * r1 + xn-1 * r00 xi r-1 (0in-1)n有小数的情形数制转换n将二进制数转换成八进制数从小数点的位置开始每三位一组分别转换成相应的八进制数的计数符号不足三位时补0n将二进制数转换成十六进制数四位一组进行转换n例0010101102=1268=5616数制转换n
3、将八进制数转换成二进制数从小数点的位置开始每一位八进制数分别转换成三位二进制数n将八进制数转换成二进制数n十进制数转换成二进制数整数部分采用除2取余法小数部分采用乘2取整法x02n-1 + x12n-2 + + xn-221 + xn-120【例例1 1】 将十进制整数将十进制整数100100转换成二进制整数。转换成二进制整数。解:用解:用2 2连续除连续除100100,直至商小于,直至商小于2 2,算式如下:,算式如下: 运算结果:运算结果:100=1100100B100=1100100B【例例2 2】 将十进制小数将十进制小数0.6180.618转换成二进制小数。转换成二进制小数。解:用解
4、:用2 2连续乘以连续乘以0.6180.618,小数部分为,小数部分为0 0或保留或保留4 4位小数,算式如位小数,算式如下:下: 运算结果:运算结果:0.6180.1001B0.6180.1001B。 不同数制之间的转换规则:n二进制数转换成十六进制数二进制数转换成十六进制数采用采用“四位合一位四位合一位”法法 n十六进制数转换成二进制数十六进制数转换成二进制数采用采用“一位分四位一位分四位”法法 n二进制数转换成十进制数二进制数转换成十进制数按按权展开后相加权展开后相加 n十六进制数转换成十进制数十六进制数转换成十进制数按按权展开后相加权展开后相加 n十进制整数转换成二进制整数十进制整数转
5、换成二进制整数采用采用“除以除以2 2取余取余”法法n十进制整数转换成十六进制整数十进制整数转换成十六进制整数采用采用“除以除以1616取余取余”法法n十进制小数转换成二进制小数十进制小数转换成二进制小数采用采用“乘乘2 2取整取整”法法 n十进制小数转换成十六进制小数十进制小数转换成十六进制小数采用采用“乘乘1616取整取整”法法 2.1.2 定点数的编码n 定点数是指小数点位置固定不变的数据。在计算机中,通常采用两种类型的定点数表示。一种定点数把小数点定在最低位数的右面,这种定点数称为定点整数,因为它实际没有小数。另一种定点数把小数点固定在最高位数的后面,即纯小数表示,称为定点小数,它只保
6、留小数点后面的数据,小数点前面的一位数据固定为零。这种二进制定点数的表示可以直接在计算机中表示,计算机中表示无符号数就直接用这种二进制的表示作为数据的编码 n机器数机器数计算机中表示的二进制数据n真值真值一个机器数所代表的实际数值n定点数定点数定点整数定点小数(b) 定点小数(a) 定点整数xxxxxxxxx xxxxxxx2.1.2 定点数的编码机器数n无符号数半字、字、双倍字、四倍字n有符号数原码、反码、补码、移码1位符号位无符号数的编码无符号数的编码n定点整数定点整数数值表示x = x0 x1x2xnxi=0,1, 0inx02n + x12n-1 + + xn-121 + xn数值范围
7、n0 x2n+1-1无符号数的编码无符号数的编码n定点小数定点小数数值表示x = x0 . x1x2xn x0=0,xi=0,1, 0in x12-1 + + xn-12-n+1 + xn2-n数值范围n0 x1-2-n有符号数的编码有符号数的编码n计算机中的数据编码都是有一定的表示范围的,离散的;而不像数学中的数可以是任意大的,连续的。n在数据编码中,如果数据值超过了编码所能表示的数值范围,则称为数值溢出。n计算机中表示一个带符号数的方法有:原码表示法、反码表示法、补码表示法和移码表示法四种。1. 原码表示法特点:简便编码方法(加符号位)例:3原 = 00000011-3原= 1000001
8、11. 原码表示法n零有两种表示方式例例 设x=101010,y= -101010,求x原和y原解:解: x原=00101010y原=10101010例例 设x=0.1010,y= -0.1010,求x原和y原解:解: x原=0.101010y原=1.1010102. 补码表示法特点:便于运算例:3补 = 00000011-3补= 111111012s complement coding2. 补码表示法n方法方法1正数:直接取其原来的二进制码(加符号位正数:直接取其原来的二进制码(加符号位0)负数:对其二进制码按位取反之后再在最低位加负数:对其二进制码按位取反之后再在最低位加1例:例:0101
9、01补补=00010101-010101补补=11101010+1=11101011n方法方法2正数:直接取其原来的二进制码正数:直接取其原来的二进制码负数:从二进制码的最低位开始,对遇到的负数:从二进制码的最低位开始,对遇到的0和第一和第一个个1取其原来的二进制编码,从第一个取其原来的二进制编码,从第一个1以后开始直以后开始直到最高位均取其相反编码。到最高位均取其相反编码。例:例:101010补补=0101010-101010补补=1010110定点小数的补码编码nx= x0.x1xnn数值范围:-1 x 1 - 2-n例例 设x=0.101010,y=-0.101010, 求x补和y补。解
10、:解:x补=0.101010y补=1.010110补码求值的方法补码求值的方法n公式法x = -x02n + x12n-1 + + xn-12 + xn例如:10000100的真值为-128+4=-124n求补法x补与-x补的关系例: x补=11111100 -x补=00000100 -x=4 x=-43. 反码表示法例:例:1010反反 = 01010 -1010反反= 101011s complement codingn反码的表示法是用对负值的各位取反的表示方法.对于给定的反玛x反的代码,其数值:3. 反码表示法n编码方法正数的反码与原码相同负数的反码是将二进制位按位取反n数值范围-2n