题1.1 为了将600份文件顺序编码,如果采用二进制代码,最少需要用几位?如果改用八进制或十六进制代码,则最少各需要用几位?
因为9位二进制代码共有2的9次幂,是512,码数不够,而2的10次幂是1024,所以采用十位二进制数对600份文件进行顺序编码够用。
如果将十位二进制数改为八进制数则需要四位,改为十六进制数,则需要三位。
题1.2 将下列二进制整数转换为等值的十进制数。
(1)01101:0*2^4+1*2^3+1*2^2+0*2^1+1*2^0=13
(2)10100:1*2^4+0*2^3+1*2^2+0*2^1+0*2^0=20
(3)10010111:1*2^7+0*2^6+0*2^5+1*2^4+0*2^3+1*2^2+1*2^1+1*2^0=128+16+4+2+1=151
(4)1101101:1*2^6+1*2^5+0*2^4+1*2^3+1*2^2+0*2^1+1*2^0=64+32+8+4+1=109
题1.3 将下列二进制小数转换为等值的十进制数。
(1)0.1001:1*2^(-1)+0*2^(-2)+0*2^(-3)+1*2^(-4)=0.5+0.0625=0.5625
(2)0.0111:0*2^(-1)+1*2^(-2)+1*2^(-3)+1*2^(-4)=0.25+0.125+0.0625=0.375+0.0625=0.4375
(3)0.101101:1*2^(-1)+0*2^(-2)+1*2^(-3)+1*2^(-4)+0*2^(-5)+1*2^(-6)=0.5+0.125+0.0625+0.015625=0.703125
(4)0.001111:0*2^(-1)+0*2^(-2)+1*2^(-3)+1*2^(-4)+1*2^(-5)+1*2^(-6)=0.125+0.0625+0.03125+0.015625=0.234375
题1.4 将下列二进制数转换为等值的十进制数。
(1)101.011:1*2^2+0*2^1+1*2^0+0*2^(-1)+1*2^(-2)+1*2^(-3)=4+1+0.25+0.125=5.375
(2)110.101:1*2^2+1*2^1+0*2^0+1*2^(-1)+0*2^(-2)+1*2^(-3)=4+2+0.5+0.125=6.625
(3)1111.1111:1*2^3+1*2^2+1*2^1+1*2^0+1*2^(-1)+1*2^(-2)+1*2^(-3)+1*2^(-4)=15.9375
(4)1001.0101:1*2^3+0*2^2+0*2^1+1*2^0+0*2^(-1)+1*2^(-2)+0*2^(-3)+1*2^(-4)=9.3125
题1.5 将下列二进制数转换为等值的八进制数和十六进制数。
将二进制数转换为八进制数前后补位数0,使得小数点左右两侧的位数是3的倍数,三个为一组//将二进制转换为十六进制数也是同理,四个为一组。
(1)1110.0111: 八:001110.011100=16.34 十六:e.7
(2)1001.1101: 八:001001.110100=11.64 十六:9.d
(3)0110.1001: 八:000110.100100=6.44 十六:6.9
(4)101100.110011: 八:101100.110011=54.63 十六:00101100.11001100:=2c.cc
题1.6 将下列十六进制数转换为等值的二进制数。
(1)8C:10001100
(2)3D.BE:00111101.10111110
(3)8F.FF:10001111.11111111
(4)10.00:00010000.00000000
题1.7 将下列十进制数转换为等值的二进制数和十六进制数。
将整数十进制转换为等值的二进制数:每次除以2,取余数,之后一直用商去除,直到余数为0,之后依次从下往上,从左往后记录。
(1)17:二进制 1*2^4+0*2^3+0*2^2+0*2^1+1*2^0 10001 十六进制:00010001=11
(2)127:二进制 1*2^6+1*2^5+1*2^4+1*2^3+1*2^2+1*2^1+1*2^0 1111111 十六进制:01111111=7F
(3)79: 二进制 1*2^6+0*2^5+0*2^4+1*2^3+1*2^2+1*2^1+1*2^0 1001111 十六进制:01001111=4F
(4)255:二进制 1*2^7+1*2^6+1*2^5+1*2^4+1*2^3+1*2^2+1*2^1+1*2^0 11111111 十六进制:11111111=FF
题1.8 将下列十进制数转换为等值的二进制数和十六进制数。要求二进制数保留小数点以后8位有效数字。
将小数十进制数转化为二进制数,每次将要转化的数乘以2,如果大于1,将1落下来,小于1落0,之后将大于1的数取小数部分在乘以2,以此类推,直到小数部分为0(或者满足条件停止),最后从上到下依次输出落下的数。
(1)0.519:二进制: 0.10000100 十六进制:0.84
(2)0.251:二进制:0.01000000 十六进制:0.40
(3)0.0376:二进制:0.00001001 十六进制:0.09
(4)0.5128:二进制:0.10000011 十六进制:0.83
题1.9 将下列十进制数转换为等值的二进制数和十六进制数。要求二进制数保留小数点以后4位有效数字。
分别按十进制整数和小数转换为二进制的方法转换。
(1)25.7:二进制:11001.1011 十六进制:19.b
(2)188.875:二进制:10111100.1110 十六进制:bc.e
(3)107.39:二进制:1101011.0110 十六进制:6b.6
(4)174.06:二进制:10101110.0000 十六进制:ae.0
题1.10 写出下列二进制数的原码,反码和补码。
(1)+1011: 原码:01011 反码:01011 补码:01011
(2)+00110:原码:000110 反码:000110 补码:000110
(3)-1101: 原码:11101 反码:10010 补码:10011
(4)-00101:原码: 100101 反码:111010 补码:111011
题1.11 写出下列带符号位二进制数(最高位为符号位)的反码和补码。
(1)011011: 反码:011011 补码:011011
(2)001010:反码:001010 补码:001010
(3)111011: 反码:100100 补码:100101
(4)101010: 反码:110101 补码:110110
题1.12 用8位的二进制补码表示下列十进制数。
(1)+17 00010001
(2)+28 00011100
(3)-13 11110011
(4)-47 11010001
(5)-89 10100111
(6)-121 10000111
题1.13 计算下列用补码表示的二进制数的代数和。如果和为负数,请求出负数的绝对值。
负数的绝对值是在补码的基础上再次求补码,之后去掉符号位。 原码:补码再求补。
(1)01001101+00100110 01110011=115
(2)00011101+01001100 01101001=105
(3)00110010+10000011 10110101=-75 1001011 75
(4)00011110+10011100 10111010=-70 1000110 70
(5)11011101+01001011 00101000=40
(6)10011101+01100110 00000011=3
(7)11100111+11011011 11000010=-62 0111110 62
(8)11111001+10001000 10000001=-127 1111111 127
题1.14 用二进制补码运算计算下列格式。式中的4位二进制数是不带符号位的绝对值。如果和为负数,请求出负数的绝对值。
(1)1010+0011 01101
(2)1101+1011 011000
(3)1010-0011 00111
(4)1101-1011 00010
(5)0011-1010 11001 绝对值 0111
(6)1011-1101 11110 绝对值 0010
(7)-0011-1010 10011 绝对值1101
(8)-1101-1011 101000 绝对值11000
题1.15 用二进制补码运算计算下列各式。
(1)3+15 00011+01111=010010
(2)8+11 01000+01011=010011
(3)12-7 01100+11001=00101
(4)23-11 010111+110101=001100
(5)9-12 01001+10100=11101 和为负值,再对补码求补,得到原码:10011(-3)
(6)20-25 010100+100111=111011 和为负值,再对补码求补,得到原码:100101(-5)
(7)-12-5 10100+11011=101111 和为负值,再对补码求补,得到原码:110001(-17)
(8)-16-14 110000+110010=100010 和为负值,再对补码求补,得到原码:111110(-30)