格雷码(Gray) 格雷码的特点是: ◇任意两个相邻码组之间只有一位码原不同(0和最大 数之间也只有一位不同),因此格雷码也称为循 环码;这种编码在形成和传输时不易出错; ◇最高位的0和1只改变一次。若以最高位的0和1的交 界为轴,其他低位的代码以此轴对称,利用这 特点可以很容易地构成位数不同的格雷码; ◇格雷码是一种无权码,不易直接进行运算,但可以 很容易地与二进制进行换算; ◇格雷码有许多形式,如余3循环码等;
11 二、格雷码(Gray) 格雷码的特点是: ❖ 任意两个相邻码组之间只有一位码原不同(0和最大 数之间也只有一位不同),因此格雷码也称为循 环码;这种编码在形成和传输时不易出错; ❖ 最高位的0和1只改变一次。若以最高位的0和1的交 界为轴,其他低位的代码以此轴对称,利用这一 特点可以很容易地构成位数不同的格雷码; ❖ 格雷码是一种无权码,不易直接进行运算,但可以 很容易地与二进制进行换算; ❖ 格雷码有许多形式,如余3循环码等;
种典型的 码 两位格雷码 位格雷码 四位格雷码 0 0011 0000-111 0 0000000 0000 0 0110011 0 0 100 0100 一一一 0 l11111 重量1 0 1001 1000 2
12 一 种 典 型 的 格 雷 码 两位格雷码 0 0 0 1 1 1 1 0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0 三位格雷码 四位格雷码 0 0 0 1 1 1 1 0 1 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 0 1 1 1 1 1 1 0 0 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 0 0
1.1.3算术运算和逻辑运算 算术运算:两个表示数量大小的二进制数码进行 的数值运算(加、减、乘、除) 无符号数 1001 1001 1001 0101)1001 +0101 0101 0101 0101 1110 0100 1001 0000 1000 0101 1001 0111 0000 0101 0101101 0010 有符号数真值:数的符号用“+”“-”表示 机器数:数的符号用符号位“0”“1”表示, 其余为数值位
13 1.1.3 算术运算和逻辑运算 一.算术运算:两个表示数量大小的二进制数码进行 的数值运算(加、减、乘、除) 1001 + 0101 1110 1001 - 0101 0100 1001 0101 1001 0000 1001 0000 0101101 0101 1001 ) 0101 1000 0101 0111 0101 0010 1.11 … 真值: 数的符号用 “ + ” “ - ”表示 机器数:数的符号用符号位“ 0 ” “ 1 ”表示, 其余为数值位。 无符号数 有符号数
三种常用机器数一原码、反码、补码 正数:符号位为0。原码、反码、补码相同 负数:原码:符号位为1,数值位表示数的大小。 反码:符号位为1,数值位按位取反。 补码:符号位为1,数值位按位取反,末位加1 例:已知X1=+1101X2=+0110用原码反码及补码计算X=x1 X 2 用原码 [X1]原=01101 原码运算规则 [X2]原=0010 符号位仅表正负,不参与运算 01101 0 00111 [X]原=00111 真值X=+0111
14 例:已知x1=+1101,x2= +0110,用原码,反码及补码计算x=x1 - x2。 负数:原码:符号位为1 ,数值位表示数的大小。 三种常用机器数 — 原码、反码、补码 正数:符号位为0。 原码、反码、补码相同。 反码:符号位为1 ,数值位按位取反。 补码:符号位为1 ,数值位按位取反,末位加1。 用原码: x1 原=01101 x2 原=00110 0 1 1 0 1 - 0 0 1 1 0 0 0 1 1 1 x原=00111 真值x=+0111 原码运算规则: 符号位仅表正负,不参与运算
反码运算规则: 补码运算规则: 1符号位参与运算 1符号位参与运算 2xX+Yl反Xl反+Y 2X+Y补X]补+Y补 IX-Y反=[X反+-Y反 XY=X|补+1¥Y1 3符号位的进位加到末位循环进位)目3符号位的进位舍去 用反码:[X1]反=01101 用补码:[X1补=01101 [-X2]l反=11001 [-X2]=11010 01101 001 01101 [X]反 :+11010 [X]补=0011 110 =00111 +………14 真值X=+0111 100111真值X=+01 00111 丢搏 逻辑运算:两个表示不同逻辑状态的二进制数码 按照指定的某种因果关系进行的运算 (与算术运算有本质不同)
15 二.逻辑运算: 两个表示不同逻辑状态的二进制数码 按照指定的某种因果关系进行的运算 (与算术运算有本质不同) 用反码: x1 反=01101 -x2 反=11001 0 1 1 0 1 + 1 1 0 0 1 1 0 0 1 1 0 + 1 0 0 1 1 1 x反 =00111 真值x=+0111 用补码: x1 补=01101 -x2 补=11010 x补=00111 真值x=+0111 0 1 1 0 1 + 1 1 0 1 0 1 0 0 1 1 1 丢掉 反码运算规则: 1 符号位参与运算 2 [X+Y]反=[X]反+[Y]反 [X-Y]反=[X]反+[-Y]反 3符号位的进位加到末位(循环进位) 补码运算规则: 1 符号位参与运算 2 [X+Y]补=[X]补+[Y]补 [X-Y]补=[X]补+[-Y]补 3 符号位的进位舍去