《计算机组成原理:硬件软件接口》第三章:计算机的算术运算 学习笔记

本文探讨了计算机如何表示负数、最大整数、溢出情况,以及有符号数和无符号数的区别。重点讲解了加法、减法和除法运算的原理,涉及浮点数的表示、运算方法和MIPS指令。还揭示了浮点数运算的精度问题以及常见误解和陷阱。

3.1概述

计算机中的字(word)是由位(bit)组成的,因此,字可以表示为二进制的数字。尽管自然数(0,1,2等)既可以用十进制的形式表示,也可以用二进制的形式表示,但是其他一些常见的数又如何表示呢。

例如:

--负数?

--计算机中的字可以表示的最大的数是多少?

--如果某一操作所产生的结果比一个字所能表示的最大的数还大,那会出现什么情况呢?

--小数和实数如何表示?

需弄清的根本原理:硬件究竟是如何进行乘法或除法运算的?

本章目的就是要揭示这些基本原理:包括

--如何表示各类数字

--用什么算法来实现算术运算

--硬件是如何实现这些算法的

--在指令集中如何表示所有这些有关的内容

3.2有符号数和无符号数

我们可以通过各种基数(base)来表示一个数。人们通常习惯于10为基数,正如我们在第2章中所介绍的那样,在计算机中则更倾向于以2为基数

最低有效位:第0位

最高有效位:第31位

MIPS机器的字长为32位,故十进制取值范围:0 ~ 4294 967 295

整数除了可以用2的补码来表示之外,我们还可以用ASCII数字字符串来表示一个数字.如果要表示的数字为10亿,那么用ASCII数字字符表示法所需要的存储空间是用32位长的二进制表示法的多少倍?

解: 10亿就是1 000 000 000,需要用10个ASCII数字来表示,每个数字长度为8位.因此,所需的存储空间是用32位长的二进制表示法的(10 x 8)/32即2.5倍。除了需要更多的存储空间以外,对于注重方法表示的数字,硬件在做加法、减法、乘法以及除法等各种运算时,所执行的操作也比二进制表示法复杂的多。正是基于这些原因,计算机专家们才一致认为,在计算机中使用二进制表示法再自然不过了。

硬件可以设计为直接对二进制位模式进行加法、减法乘法以及除法等运算。如果这些运算的正常结果无法用硬件能提供的有效位表示出来,就称这种现象为溢出(overflow)。溢出发生时,操作系统和相应的程序必须决定如何处理这种现象。

计算机程序既要处理正数,也要处理负数,因此我们必须设计一种表示方法,用以区分正数与负数。最直观的方法是增加一个单独的表示正负的符号,这只要用一个二进制位就可以方便地实现;这种表示方法称为符号加绝对值表示法,又称为原码。如今所有的计算机都用2的补码来表示带符号的整数。2的补码表示法有一个很大的优点,即所有负数的最高有效位(MSB)为1.因此,只要检查一下最高有效位,硬件就能判断某个数是正数还是负数(将0当成正数)。这个特殊的位称为符号位(sign bit)。在重新考虑了符号位的特殊情况以后,我们仍然可以用各位的值与2的相应次幂的乘积之和来表示32位正数和负数。

有符号数的溢出现象:当二进制位模式最左端保留为与保留无穷多位时左端的位不同时,就发生了溢出。

有符号数与无符号数的区别不仅表现在算术运算上,还表现在将这些数据加载入寄存器的过程中。将有符号数写入寄存器时,需要用符号位填满寄存器左侧中多余的位——我们将这一过程称为符号扩展(sign extension)——其目的是为了使这个有符号数能以正确的表示存放在寄存器中。而无符号数装入时,只需将左侧剩余的位置全部填上0即可,因为其中的数据是没有正负之分的。将32位字长的数据装入32位宽的寄存器时,有符号数和无符号数的装入过程是一样的。MIPS机器提供了两种形式的字节装入指令:一种是带符号的字节装入(load byte, lb),它将要装入的字节看成一个有符号数,并用符号扩展寄存器左侧的24个剩余的二进制位;另一种无符号的字节装入(load byte unsigned, lbu)则将要装入的字节看作无符号的整数。由于C程序中通常是用字节来表示字符类型(character),很少将其当成带符号的断整数,

计算机组成原理硬件/软件接口 第五版英文原版答案 《计算机组成设计:硬件/软件接口(原书第5版)》是计算机组成设计的经典畅销教材,第5版经过全面更新,关注后PC时代发生在计算机体系结构领域的革命性变革——从单核处理器到多核微处理器,从串行到并行。本书特别关注移动计算和云计算,通过平板电脑、云体系结构以及ARM(移动计算设备)和x86(云计算)体系结构来探索和揭示这场技术变革。   前几版一样,本书采用MIPS处理器讲解计算机硬件技术、汇编语言、计算机算术、流水线、存储器层次结构以及I/O等基本功能。   《计算机组成设计:硬件/软件接口(原书第5版)》特点   更新例题、练习题和参考资料,重点关注移动计算和云计算这两个新领域。   涵盖从串行计算到并行计算的革命性变革,第6章专门介绍并行处理器,每章中都涉及并行硬件软件的相关主题。   全书采用Intel Core i7、ARM Cortex-A8和NVIDIA Fermi GPU作为实例。   增加“运行更快”这一新实例,说明正确理解硬件技术的重要性,它能使软件性能提高200倍。   讨论并强调计算机体系结构的“8个伟大思想”——通过并行提高性能、通过流水线提高性能、通过预测 提高性能、面向摩尔定律的设计、存储器层次、使用抽象简化设计、加速大概率事件和通过冗余提高可靠性
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值