计算机组成和结构课件第二章
第二章运算方法与运算器 Department of Computer 覃 颖 Tel: 6392292 Email: qinying@ctgu.edu.cn 2.1 数据与文字的表示方法 2.1.1 数的机器码表示 在计算机中参与运算的数有两大类:无符号数和有符号数。 无符号数:所谓无符号数,即没有符号的数,数中的每一位均是有效数值。 有符号数:将符号数字化,用“0”表示“正”,用“1”表示“负”,并且规定放在有效数字的前面,这就构成有符号数。 2.1 数据与文字的表示方法 2.1.1 数的机器码表示 机器数与真值:把符号“数字化”的数叫机器数,而把带“+”或“-”符号的数叫真值。机器数实质是符号和数值形成的一种编码表示,常见的有原码、反码、补码和移码等表示法。 2.1 数据与文字的表示方法 2.1.1 数的机器码表示 原码表示法: 整数原码的定义: [x]原= 0,x 2n > x ? 0 2n –x 0 ? x > -2n 小数原码的定义: [x]原= x 1 > x ? 0 1–x 0 ? x > -1 式中x为真值,n为整数的位数 2.1 数据与文字的表示方法 2.1.1 数的机器码表示 原码表示法:原码表示是一种带符号的绝对值表示方法。 例如,x=+0.1001,则[x]原=0.1001 x=-0.1001,则[x]原=1.1001 采用原码表示法简单易懂,但它的最大缺点是加法运算复杂。 2.1 数据与文字的表示方法 2.1.1 数的机器码表示 补码表示法: 整数补码的定义: [x]补= 0,x 2n > x ? 0 2n+1 +x 0 ? x > -2n (mod 2n+1) 小数补码的定义: [x]补= x 1 > x ? 0 2+x 0 ? x > -1 (mod 2) 式中x为真值,n为整数的位数 2.1 数据与文字的表示方法 2.1.1 数的机器码表示 补码表示法: 例如,x=+0.1011,则[x]补=0.1011 x=-0.1011,则[x]补=10+x =10.0000-0.1011 =1.0101 采用补码表示法进行减法运算就比原码方便得多了。因为不论数是正还是负,机器总是做加法,减法运算可变为加法运算。 2.1 数据与文字的表示方法 2.1.1 数的机器码表示 反码表示法: 整数反码的定义: [x]反= 0,x 2n > x ? 0 (2n+1-1)+x 0 ? x > -2n (mod 2n+1-1) 小数反码的定义: [x]反= x 1 > x ? 0 (2-2-n)+x 0 ? x > -1 (mod 2-2-n) 式中x为真值,n为整数的位数 2.1 数据与文字的表示方法 2.1.1 数的机器码表示 反码表示法:所谓反码,就是二进制的各位数码0变为1,1变为0。 例如,x=+0.1011,则[x]反=0.1011 x=-0.1011,则[x]反=10-0.0001+x =1.1111-0.1011 =1.0100 不难证明:[x]补=[x]反+2-n 这个公式告诉我们,若要一个负数变补码,其方法是符号位置1,其余各位0变1,1变0,然后在最末位(2-n)上加1。 2.1 数据与文字的表示方法 2.1.1 数的机器码表示 移码表示法:移码通常用于表示定点整数。 整数移码的定义: [x]移= 2n +x 2n > x ? -2n 式中x为真值,n为整数的位数 2.1 数据与文字的表示方法 2.1.1 数的机器码表示 移码表示法: 例如,x=+10101,则[x]移=25+10