前言其他内容可看计算机组成原理学习笔记_其实防守也摸鱼的博客-CSDN博客https://blog.csdn.net/2503_91800161/category_13153538.html知识点本章内容通常可以分为三大知识模块一、 机器数的表示方法这一部分重点解决有符号数和无符号数在计算机中的编码问题。无符号数与有符号数无符号数默认全为数值位有符号数则将最高位作为符号位0正1负将正负号数字化。四种常见机器码原码符号位加真值的绝对值简单直观但加减法运算繁琐且“0”有两种表示。补码现代计算机最常用的表示法能将减法转化为加法简化了硬件设计且“0”的表示唯一。反码过渡性的表示方法正数与原码相同负数为原码除符号位外按位取反。移码主要用于浮点数的阶码表示通过在真值上加一个常数使其变为正数便于比较大小。二、 数据的定点与浮点表示根据小数点位置是否固定数据分为两种格式定点表示小数点固定在某一位置通常在符号位后或最低位后分为纯整数和纯小数。浮点表示类似于科学计数法由阶码指数和尾数小数两部分组成极大扩展了数据的表示范围。IEEE 754标准这是浮点数表示的重中之重。它规定了单精度32位和双精度64位等格式其中尾数使用原码表示阶码使用移码表示如单精度的阶码需加上偏置常数127。同时为了节省空间规格化浮点数通常会隐藏尾数最高位的“1”。三、 定点与浮点的四则运算及硬件实现这部分的核心思想是对传统的笔算方法进行改进以适应硬件电路的实现。定点运算移位运算左移相当于乘2右移相当于除2需注意算术移位与逻辑移位的区别。加减法利用补码的特性统一处理加减法并通过专门的逻辑电路如双符号位判断是否发生溢出。乘法与除法包括原码和补码的乘法/除法。例如除法中常采用“恢复余数法”及其改进版“不恢复余数法加减交替法”通过寄存器移位和加法器配合完成。浮点运算加减运算必须先进行对阶操作小阶向大阶看齐然后尾数相加减最后进行结果规格化和舍入处理。乘除运算阶码相加减尾数相乘除同样需要后续的规格化处理。算术逻辑单元ALU运算方法的最终落脚点。介绍如何通过基本的二进制加法器构建并行加法器并利用快速进位链先行进位来减少进位延迟提高运算速度。习题单选题1. (单选题) 根据[X]补求[-X]补的方法是 A. 符号位不变尾数按位变反最低位加1B. 符号位与尾数一起按位变反最低位加1C. 符号位置0尾数按位变反最低位加1D. 符号位置1尾数按位变反最低位加1【答案】B【解析】在补码加减运算中已知[Y]补求[-Y]补即机器负数的过程称为“变补”。其规则是不论真值是正是负一律将[Y]补连同符号位在内一起按位取反然后在末位加1。因此选项 B 正确。注意不要将其与由原码求补码的方法混淆。2. (单选题) 若十进制数为 132.75 则相应的十六进制数为 A. 21.3B. 84.cC. 24.6D. 84.6【答案】B【解析】需将整数部分和小数部分分别转换整数部分 (132)采用除16取余法。132 ÷ 16 8 余 48 ÷ 16 0 余 8。从下往上读得84。小数部分 (0.75)采用乘16取整法。0.75 × 16 12.0取出整数 12对应十六进制的c。综合起来结果为84.c。3. (单选题) 若二进制数为 1111.101 则相应的十进制数为 A. 15.625B. 15.5C. 14.625D. 14.5【答案】A【解析】按权展开相加即可整数部分1×231×221×211×208421151×231×221×211×20842115小数部分1×2−10×2−21×2−30.500.1250.6251×2−10×2−21×2−30.500.1250.625合并后得到十进制数为15.625。4. (单选题) 设有二进制数 x—1101110 若采用 8 位二进制数表示则[X]补为 A. 11101101B. 10010011C. 00010011D. 10010010【答案】B【解析】x 是一个负数其原码为最高位符号位加上数值位补齐至7位1 1101110。求补码的规则为符号位保持不变数值部分按位取反后末位加1。数值位1101110按位取反变为0010001末位加1变为0010010-1101110 的绝对值为 1101110。8位原码 1 1101110反码 1 0010001补码 1 0010010因此正确答案选D。5. (单选题) 若[X]补0.1011 则真值 X A. 0.1011B. 0.0101C. 1.1011D. 1.0101【答案】A【解析】补码的最高位为符号位。由于[X]补 0.1011的符号位是0代表这是一个正数。正数的补码与其原码相同且等于其真值。因此真值 X 就是0.1011。填空题6.(填空题)浮点数的加法运算需要经过(对阶)、(尾数相加减)、(规格化)、(舍入)和(溢出判断)五个步骤。【解题步骤】浮点数的加减法运算比定点数复杂其核心思想是阶码和尾数分开处理。根据计算机组成原理的规范标准流程分为以下五步对阶求阶差首先计算两数的阶码差 ΔEEx−EyΔEEx​−Ey​ 。遵循“小阶向大阶看齐”的原则将阶码较小的数的尾数向右移位每右移一位阶码加1直到两数阶码相等为止。尾数相加减对阶完成后两个浮点数的小数点对齐此时直接对两个尾数进行定点加减运算。规格化由于尾数加减的结果可能不符合规格化要求如结果绝对值大于等于1或小于0.5需要进行左规尾数左移阶码减1或右规尾数右移阶码加1使结果满足 1/2≤∣M∣11/2≤∣M∣1 的要求。舍入在对阶或规格化过程中尾数右移会导致低位数据丢失因此需要采用“0舍1入”法或IEEE 754标准的“就近舍入”等方法进行精度补偿。溢出判断最后检查结果的阶码是否超出了机器所能表示的范围。若阶码上溢则按无穷大处理并中断若阶码下溢则按机器0处理只有阶码正常才算最终完成运算。7.(填空题)在原码一位乘法中首先要求出被乘数和乘数的(绝对值) 然后才能进行乘法运算。【解题步骤】在原码一位乘法中硬件电路执行的是纯二进制位的加法和移位操作。为了简化硬件设计符号位与数值位是完全分离处理的符号位单独处理乘积的最终符号由被乘数和乘数的符号位进行异或XOR运算得出。数值位取绝对值参与实际累加和移位循环计算的必须是被乘数和乘数的绝对值即去除符号位后的纯数值部分。因此在运算开始前首先要提取出两者的绝对值。8.(填空题)已知X0.01110BY-0.11011B假设用字长8位的定点小数存储下列各机器数那么[X/2]原(0.0011100) [X/4]原(0.0001110)[X/2]补(0.0011100) [X/4]补(0.0001110)[Y/2]原(1.0110110) [Y/4]原(1.0011011)[Y/2]补(1.1001010) [Y/4]补(1.1100101)。【解题步骤】在计算机中对定点小数进行除以2、除以4的操作等效于进行算术右移1位、算术右移2位。规则如下正数无论是原码还是补码算术右移时高位空出的位置均添补0。负数原码算术右移时高位添补0补码算术右移时高位添补1以保持负数符号不变。已知字长为8位含1位符号位具体推导如下对于 X 0.01110B正数[X]原 [X]补 0.0111000补齐至8位[X/2]相当于算术右移1位最高位补0最低位移出。结果为0.0011100。[X/4]相当于算术右移2位最高两位补0。结果为0.0001110。对于 Y -0.11011B负数[Y]原 1.1101100补齐至8位[Y]补 1.0010100除符号位外按位取反末位加1[Y/2]原对原码算术右移1位负数原码高位补0。结果为1.0110110。[Y/4]原对原码算术右移2位高位补两个0。结果为1.0011011。[Y/2]补对补码算术右移1位负数补码高位补1。结果为1.1001010。[Y/4]补对补码算术右移2位高位补两个1。结果为1.1100101。