2012年软考系统分析师经典教程:计算机中的编码

来源:微学教育网发布时间:2012-07-06

1.2 计算机中的编码

  (1)二进制、十进制和十六进制等常用数制及其相互转换:

  由于计算机的存储器和寄存器是两态部件,所以各种信息在计算机中是以二进制的方式存储和计算的。数制是由基数和基数个不同的数码组成的。

  BCD码:十进制的二进制表示,

  0:0000     1:0001    2:0010   3:0011  4:0100    5:0101

  6:0110     7:0111    8:1000   9:1001

  十进制的202可以表示成BCD码为0010 0000 0010;     

  十六进制 <-> 二进制:十六进制表示法是用16位二进制数字组成的,每4位二进制数字表示一位十六进制数,十六进制的数字表示从0-9,A,B,C,D,E,F共十六个字符.十六进制与二进制相互转换就是一位十六进制字符与四位二进制数字的相互转换过程.

  十进制<-> 二进制:十进制向二进制转换分两步进行:首先把该数的整数部分和小数部分转换为二进制数;然后再把这两部分合并起来即可.十进制的整数部分向二进制转换是通过对十进制不断的除2取余数得到,十进制小数部分通过乘2取整的方法获得,直到小数部分为0,所得到的整数部分就形成了二进制编码;同样的,二进制向十进制转换如下所示:

  十进制数

  N=(RnRn-1...R1R0R-1...R-m

  = Rn *2n+Rn-1*2n-1+...+R1*2+R0+R-1*2-1...R-m*2-m

  八进制 <-> 二进制:二进制向八进制转换的方法是从小数点开始分别向左右每3位二进制数编成一组,若不够3位,则小数点左侧的最高位和右侧的最低位用0补充,每一组用对应的八进制的数码表示即可;八进制向二进制转换的方法是从小数点开始,把每一位八进制的数码转换成对应的3位二进制即可。其小数点左侧的最高位或右侧的最低位的0可以省去。

   ⑵ 计算机中的二进制数运算方法:

  1.定点数运算:要判断是否溢出?( )

  加法:[X+Y]=([X]+[Y]) MOD 2

  减法:[X-Y]=([X]+[-Y])MOD 2

  乘法:

  采用原码比较方便,使用原码一位乘法来求两个定点数的乘积。运算规则为:

  乘积的符号位等于乘数和被乘数的符号位进异或;

  乘积的值等于两数绝对值之积,即乘数和被乘数的绝对值进行移位相加;

  除法:

  采用原码比较方便。运算规则为:

  商的符号位同定点数原码乘法的处理方法,由两数的符号位进行异或

  两数的绝对值部分进行相除。

  2.  浮点运算

  1) 加减法:

  a)        对阶

  b)        尾数进行加、减运算

  c)        规格化

  d)        舍入

  e)        溢出判断

  2) 乘除法:

  浮点相乘,其积的阶码为两数阶码相加,积的尾数为两尾数相乘。

  浮点数相除,其商的阶码为两数阶码之差,商的尾数为两尾数相除。

  其结果都需要进行规格化处理,同时还需要进行溢出判断。

  ⑶ 逻辑代数的基本运算和逻辑表达式的化简:

  逻辑表达式就是以逻辑运算符把若干逻辑变量连接在一起表示某种关系的表达式。一个逻辑函数往往有多种不同的表达式。可以利用其本逻辑运算规律和一些常用的逻辑恒等式对逻辑表达式进行合并项、吸收项、配项、消去项等操作来化简。

  基本的逻辑运算有“与”、“或”、“非”、“异或”。

  常用的逻辑运算公式:

  交换律:A+B=B+A  A*B=B*A

  结合律:A+(B+C)=(A+B)+C

  分配律:A*(B+C)=A*B+A*C  A+(B*C)=(A+B)*(A+C)

  反演律:A+B= A * B

  重叠律:A+A=A A*A=A

  互补律:A+ A =1 A* A =0

  对合律: A =A

  0-1律:0+A=A A*A=0