信息表示和处理 from computer system chapter 2

1、整数的表示 大部分(所有?)机器 有符号数是补码表示。

2、整数的运算。+ -就是+-,按位加减,注意有符号和无符号的数值溢出,*/ 可以转换成移位等 同样是有位的截断,可以先十进制计算换成2进制再截断。

3、实际上是一种模运算,注意字长导致截断。

4、浮点数的表示:

单精度为例:32位,1位的符号位,8位指数位(无符号 书上说的实际值是他-127即范围是-127-128,网上是错的-128-127),23位的尾数,因为尾数小数点前是1,所以省略,计算时加1.

无穷和除 NaN 以外的其它浮点数一样是有序的,从小到大依次为负无穷,负的有穷非零值,正负零(随后介绍),正的有穷非零值以及正无穷。除 NaN 以外的任何非零值除以零,结果都将是无穷,而符号则由作为除数的零的符号决定。

回顾我们对 NaN 的介绍,当零除以零时得到的结果不是无穷而是 NaN 。原因不难理解,当除数和被除数都逼近于零时,其商可能为任何值,所以 IEEE 标准决定此时用 NaN 作为商比较合适。

5、特殊值:我们已经知道,指数域实际可以表达的指数值的范围为 -127 到 128 之间(包含两端)。其中,值 -127(保存为 全 0)以及 +128(保存为全 1)保留用作特殊值的处理。

6、非规范化数

我们来考察浮点数的一个特殊情况。选择两个绝对值极小的浮点数,以单精度的二进制浮点数为例,比如 1.001 × 2-125 和 1.0001 × 2-125 这两个数(分别对应于十进制的 2.6448623 × 10-38 和 2.4979255 × 10-38)。显然,他们都是普通的浮点数(指数为 -125,大于允许的最小值 -126;尾数更没问题),按照 IEEE 754 可以分别保存为 00000001000100000000000000000000(0x1100000)和 00000001000010000000000000000000(0x1080000)。

现在我们看看这两个浮点数的差值。不难得出,该差值为 0.0001 × 2-125,表达为规范浮点数则为 1.0 × 2-129。问题在于其指数大于允许的最小指数值,所以无法保存为规范浮点数。最终,只能近似为零(Flush to Zero)。这中特殊情况意味着下面本来十分可靠的代码也可能出现问题:

if (x != y) { z = 1 / (x -y);}

正如我们精心选择的两个浮点数展现的问题一样,即使 x 不等于 y,x 和 y 的差值仍然可能绝对值过小,而近似为零,导致除以 0 的情况发生。

为了解决此类问题,IEEE 标准中引入了非规范(Denormalized)浮点数。规定当浮点数的指数为允许的最小指数值,即 emin 时,尾数不必是规范化的。比如上面例子中的差值可以表达为非规范的浮点数 0.001 × 2-126,其中指数 -126 等于 emin。注意,这里规定的是"不必",这也就意味着"可以"。当浮点数实际的指数为 emin,且指数域也为 emin 时,该浮点数仍是规范的,也就是说,保存时隐含着一个隐藏的尾数位。为了保存非规范浮点数,IEEE 标准采用了类似处理特殊值零时所采用的办法,即用特殊的指数域值 emin - 1 加以标记,当然,此时的尾数域不能为零。这样,例子中的差值可以保存为 00000000000100000000000000000000(0x100000),没有隐含的尾数位。

7、有符号的零

因为 IEEE 标准的浮点数格式中,小数点左侧的 1 是隐藏的,而零显然需要尾数必须是零。所以,零也就无法直接用这种格式表达而只能特殊处理。

实际上,零保存为尾数域为全为 0,指数域为 emin - 1 = -127,也就是说指数域也全为 0。考虑到符号域的作用,所以存在着两个零,即 +0 和 -0。不同于正负无穷之间是有序的,IEEE 标准规定正负零是相等的。

零有正负之分,的确非常容易让人困惑。这一点是基于数值分析的多种考虑,经利弊权衡后形成的结果。有符号的零可以避免运算中,特别是涉及无穷的运算中,符号信息的丢失。举例而言,如果零无符号,则等式 1/(1/x) = x 当x = ±∞ 时不再成立。原因是如果零无符号,1 和正负无穷的比值为同一个零,然后 1 与 0 的比值为正无穷,符号没有了。解决这个问题,除非无穷也没有符号。但是无穷的符号表达了上溢发生在数轴的哪一侧,这个信息显然是不能不要的。零有符号也造成了其它问题,比如当 x=y 时,等式1/x = 1/y 在 x 和 y 分别为 +0 和 -0 时,两端分别为正无穷和负无穷而不再成立。当然,解决这个问题的另一个思路是和无穷一样,规定零也是有序的。但是,如果零是有序的,则即使 if (x==0) 这样简单的判断也由于 x 可能是 ±0 而变得不确定了。两害取其轻者,零还是无序的好。

8、NaN

NaN 用于处理计算中出现的错误情况,比如 0.0 除以 0.0 或者求负数的平方根。对于单精度浮点数,NaN 表示为指数为 emax + 1 = 128(指数域全为 1),且尾数域不等于零的浮点数。IEEE 标准没有要求具体的尾数域,所以 NaN 实际上不是一个,而是一族。

9、无穷

和 NaN 一样,特殊值无穷(Infinity)的指数部分同样为 emax + 1 = 128,不过无穷的尾数域必须为零。无穷用于表达计算中产生的上溢(Overflow)问题。比如两个极大的数相乘时,尽管两个操作数本身可以用保存为浮点数,但其结果可能大到无法保存为浮点数,而必须进行舍入。根据 IEEE 标准,此时不是将结果舍入为可以保存的最大的浮点数(因为这个数可能离实际的结果相差太远而毫无意义),而是将其舍入为无穷。对于负数结果也是如此,只不过此时舍入为负无穷,也就是说符号域为 1 的无穷。

10、尾数域为不全为 0 emin - 1 = -127,指数域全为 0,不存在,因为可以用非规范的表示。    我的理解。

11、浮点数的计算:这种运算通常伴随着因为无法精确表示而进行的近似或舍入。

+-:两浮点数进行加法和减法的运算规则是

设 Ex小于等于Ey,则 x±y = (Mx*2^(Ex-Ey)±My)*2^Ey,  舍入处理

http://blog.csdn.net/b2b160/article/details/4492519

http://www.cnblogs.com/kingwolfofsky/archive/2011/07/21/2112299.html

http://baike.baidu.com/view/339796.htm

时间: 2024-10-12 18:12:08

信息表示和处理 from computer system chapter 2的相关文章

Access control differentiation in trusted computer system

A trusted computer system that offers Linux? compatibility and supports contemporary hardware speeds. It is designed to require no porting of common applications which run on Linux, to be easy to develop for, and to allow the use of a wide variety of

【系统设计】论文总结之:Butler W. Lampson. Hints for computer system design

Butler W. Lampson. Hints for computer system design. ACM Operating Systems Rev. 15, 5 (Oct. 1983), pp 33-48 原文地址:http://research.microsoft.com/en-us/um/people/blampson/33-Hints/WebPage.html 简单就是美,做好一件事情,保证稳定高效的基本功能,找好立足点,时刻准备丢弃一个不要的原型,好的一定要复用,分而治之.

Hypervisor, computer system, and virtual processor scheduling method

A?hypervisor?calculates the total number of processor cycles (the number of processor cycles of one or more physical processors) in a first length of time based on the sum of the operating frequencies of the respective physical processors and the fir

Stack switching mechanism in a computer system

A method and mechanism for performing an unconditional stack switch in a processor. A processor includes a processing unit coupled to a memory. The memory includes a plurality of stacks, a special mode?task?state?segment, and a descriptor table. The

Computer system with dual operating modes

A system switches between non-secure and secure modes by making processes, applications, and data for the non-secure mode unavailable to the secure mode and vice versa. The process thread run queue is modified to include a state flag for each process

计算机系统基础 第二章(计算机系统概述) Fundament of Computer System ——公式记忆2

计算机系统基础 第二章(计算机系统概述)  Fundament of Computer System ——公式记忆2 2019-10-22 Tue. ♦ 1.浮点表示  任意实数X = (-1)S × M × RE S:Sign 符号位  (S取值0或1:决定 数X的符号) M:尾数 (尾数M的位数  反映 X的有效位数:决定 数X的表示精度:有效位数越多,表示精度就越高) R:基数  () E:Exponent 阶数 (阶E的位数决定数X的表示范围:阶E的值 确定 小数点的位置) 未完待续..

scsi: Small Computer System Interface

scsi是一种I/O技术 scsi总线是SCSI设备间传输数据的通路 iscsi协议 借助现有的网络技术,以延长ISCSI设备的传输长度 ISCSI Initator三种工作方式: ISCSI HBA卡:采用内建SCSI指令及TOE引擎的ASIC芯片.价格最贵,性能最好 ISCSI TOE卡:内建TOE引擎,ISCSI指令以软件方式动作,会占用CPU资源 ISCSI Initator驱动程序:占用大量CPU资源,性能最差 ISCSI Target: 监听3260/tcp端口 iSCSI Targ

[CSAPP] Chapter 1 Overview of Computer

1.1 information is bits + context All computer programs are just a sequence of bits, each with a value of 0 or 1, organized in 8-bit chunks called by bytes. 8 bits = 1 byte All files is binary files. 1.2 Programs are translated by other programs into

CHAPTER 1 Introduction to database (第一章 数据库简介)

Chaper  Objectives  (章节目标) In this chapter you will learn:   (在这一章节中,你将学习) 1. Some common uses of database systems.   (数据库系统的一些普通扩法) 2.The characteristics of file-based systems. (基于文件系统的一些特点.) 3. The problems with the file-based systems.  (基于文件系统拥有的一