第三编中央处理器( CPU ) 本篇将剖析 CPU 的内部结构,讲述 CPU 的功能,包括计算机的运算、指令系统、时序系统、中断系统及控制单元。第六章计算机的运算方法计算机的应用领域极其广泛, 但不论其应用在什么地方, 信息在机器内部的形式都是一致的, 即均为 0和1 组成的各种编码。本章主要介绍参与运算的各类数据( 包括无符号数和有符号数;定点数和浮点数等),以及它们在计算机中的计算方法。第一节无符号数和有符号数在计算机中参与运算的数有两大类:无符号数和有符号数。一、无符号数计算机中的数均放在寄存器中, 通常称寄存器的位数为机器字长。所谓无符号数即没有符号的数, 在寄存器中的每一位均可用来存放数值。当存放有符号数时, 则需留出位置存放“符号”。因此, 在机器字长相同时, 无符号数与有符号数所对应的数值范围不同的。以机器字长为 16 位为例, 无符号数的表示范围为 0~ 65535 , 而有符号数的表示范围为-32768 ~ +32767( 此数值对应原码表示)。二、有符号数 1 .机器数与真值对有符号数而言, 符号的“正”、“负”机器是无法识别的, 但由于“正”、“负”恰好是两种截然不同的状态, 如果用“0”表示“正”,用“1”表示“负”, 这样符号也被数字化了,并且规定将它放在有效数字的前面,这样就组成了有符号数。如有符号数(小数): 把符号“数字化”的数叫做机器数, 而把带“十”或“—”符号的数叫做真值。一旦符号数字化后, 符号和数值就形成了一种新的编码。在运算过程中, 符号位能否和数值部分一起参加运算?如果参加运算, 符号位又需作哪些处理?这些问题都与符号位和数值位所构成的编码有关,这些编码就是原码、补码、反码和移码。 2 .原码表示法原码是机器数中最简单的一种表示形式, 其符号位为 0 表示正数, 符号位为 1 表示负数, 数值位即真值的绝对值, 故原码表示又称作带符号的绝对值表示。上面列举的 4 个真值所对应的机器数即为原码。为了书写方便以及区别整数和小数, 约定整数的符号位与数值位之间用逗号“,”隔开: 小数的符号位与数值位之间用小数点“.”隔开。如上面 4 个数的原码分别是 、 、 0,1100 和 1,1100 。由此可得原码的定义。(1 )整数原码的定义为。式中 x 为真值, n 为整数的位数。例如,当 x=+1110 时, [x] 原=0,1110 当 x=-1110 时, [x] 原=2 4 -(-1110) = 1,1110 小数原码的定义为例如,当 x=+ 时, [x] 原= 当 x=- 时, [x] 原=1-(-) = 根据定义,已知真值可求原码,反之已知原码也可求真值。如:当[x] 原= 时,由定义得 x=1-[x] 原=1-=- 当[x] 原=1,1100 时,由定义得 x=2 n -[x] 原=2 4 -1,1100=10000-11100 = -1100 当[x] 原= 时, x= (2)“0”的原码表示法。当 x=0 时[+] 原= [-] 原=1-()= 可见[+0] 原不等于[-0] 原,即原码中的“零”有两种表示形式。(3 )原码的表数范围。对于定点整数: 一个 n+1 位原码能表示的最大正数为 01… 11 ,即 2 n -1 ;能表示的最小数为绝对值最大的负数 111 … 1,即-(2 n -1) 。所以原码能表示的数值范围为: -(2 n -1) ≤x≤2 n -1。对于定点小数: 一个 n+1 位定点小数原码能表示的最大正数为 … 11, 即 1-2 -n ;能表示的最小数为绝对值最大的负数为 …1 ,即-(1-2 -n) 。定点小数原码的数值范围为: -(1-2 -n)≤x≤ 1-2 -n。原码表示简单明了, 并易于和真值转换。但用原码进行加减运算时, 却带来了许多麻烦, 例如, 当两个操作数符号不同且要作加法运算时, 先要判断两数绝对值大小, 然后将绝对值大的数减去绝对值小的数, 结果的符号以绝对值大的数为准。运算步骤既复杂又费时, 而且本来是加法运算却要用减法器实现。那么能否在计算机中只设加法器, 只作加法操作呢?如果能找到一个与负数等价的正数来代替该负数, 就可把减法操作用加法代替。而且机器数采用补码时,就能满足此要求。 3 .补码表示法(1) 补数的概念。在日常生活中,常会遇到“补数”的概念。如时钟指示 6 点,欲使它指示 3点, 既可按顺时针方向将分针转 9圈, 又可按逆时针方向将分针转 3圈, 结果是一致的。假设顺时针方向转为正,逆时针
数的加减乘除 来自淘豆网m.daumloan.com转载请标明出处.