计算机-关于754标准浮点数表示的一些思考

问题描述

关于754标准浮点数表示的一些思考
大家好,最近在啃南大袁春风老师的《计算机组成与系统结构》这本书,
书中一句话不解:""因为原码是对称的,所以浮点数的范围关于原点对称。""
大家都知道浮点数表示为X=(-1)^s*M*R^E浮点数的正负由符号位s控制,
s取1就是负,s取0就是正,关原码M什么事啊!由于有符号位s控制浮点数的正负,
那原码M就应该只表示正的定点小数啊!请各路大神帮俺释疑解惑!!!

解决方案

说的是范围,比如-2^8~2^8,原点不动的话,能表示的范围,正负绝对值一样。

解决方案二:
因为原码表示,加上符号位,构成反码表示,所以是对称的,并且有+0,-0 两个0
原码本身只表示 正数 和他的相反数,绝对值相同

解决方案三:
IEEE754标准在表示浮点数
解读IEEE标准754:浮点数表示
解读IEEE标准754:浮点数表示

时间: 2024-08-02 09:28:36

计算机-关于754标准浮点数表示的一些思考的相关文章

计算机组成原理-IEEE 754标准下, 浮点数1的机器码表示

问题描述 IEEE 754标准下, 浮点数1的机器码表示 用反汇编得到了浮点数1的机器码,根据IEEE 754标准推断,却发现匹配不上. 具体如下: float f = 1.0f; 这句话反汇编后,汇编代码如下: mov $0x3f800000,%eax mov %eax,-0x4(%ebp) 这里的0x3f800000应该是浮点数的1的机器码表示,该机器码表示应当符合IEEE 754标准. 标准如下: 对于短实数,即32位实数,格式如下: 符号位 阶码 尾数 1 8 23 则可知,0x3f80

《计算机组成原理》----2.6 浮点数

2.6 浮点数 介绍了整数之后,下一步就是讨论浮点运算,即实数之间的运算.实数是所有有理数和无理数的集合.浮点运算能够让人们处理科学应用(与金融或商业应用相对)中很大的和很小的数.浮点运算不像整数运算,它的计算结果一般是不确定的.一块芯片上的浮点计算结果也许与另一块芯片上的不同.后面将解释为什么浮点运算无法获得确定的答案,并讨论一些程序员必须了解的陷阱. n位字长的计算机能够处理值为0-2n-1的单字长无符号整数.更大的整数可以通过将多个字链接在一起来表示.例如,一台32位的计算机可以将两个32

浮点数的运算原理:IEEE 754

IEEE二进制浮点数算术标准(IEEE 754)是20世纪80年代以来最广泛使用的浮点数运算标准,为许多CPU与浮点运算器所采用.IEEE 754规定了四种表示浮点数值的方式:单精确度(32位).双精确度(64位).延伸单精确度(43比特以上,很少使用)与延伸双精确度(79比特以上,通常以80比特实做). IEEE 754将存储浮点数的比特序列分为三个部分:符号位S,指数位E和尾数位M.根据规定,对于32位的浮点数,最高的1位是符号位s,接着的8位是指数E,剩下的23位为有效数字M:对于64位的

计算机教室迎来“新标准” 锐捷网络“云课堂”重磅发布

在迈入云计算时代的今天,您印象中的学校计算机教室是否还是十年前的老样子?"效率低.成本高.管理弱.维护难.体验差"的老大难问题,与"云动四方"的信息化进程越来越格格不入.今天,为教育行业云应用而创 新的锐捷"云课堂",给现代计算机教室的 革命性演进带来了全新的标准!3月21日,在"为云应用而创新"的全新理念推动下,中国网络解决方案领导品牌锐捷网络的"云课堂"重磅发布.云课堂作为计算机教室新标准,在开机和运行

Java Math 类中的新功能,第 2 部分: 浮点数

Java 语言规范第 5 版向 java.lang.Math 和 java.lang.StrictMath 添加了 10 种新方法,Java 6 又添加了 10 种.这个共两部分的系列文章的 第 1 部分 介绍了很有意 义的新的数学方法.它提供了在还未出现计算机的时代中数学家比较熟悉的函数.在第 2 部 分中,我主要关注这样一些函数,它们的目的是操作浮点数,而不是抽象实数. 就像 我在 第 1 部分中 提到的一样,实数(比如 e 或 0.2)和它的 计算机表示(比如 Java double)之间

从如何判断浮点数是否等于0说起——浮点数的机器级表示

题目中针对的0,对于浮点类型,具体指的是0.0,自然对于指针类型就是NULL,对于整型就是0,一些常见笔试面试题中常出现,不要较真,十分欢迎提出改进意见. 本文很大程度上收到林锐博士一些文章的启发,lz也是在大学期间读过,感觉收益良多,但是当时林锐也是说了结论,lz也只是知其然,而不知其所以然,为什么要那样写?为什么要这样用?往往一深究起来就稀里糊涂了,现在有幸还是继续读书,我发现了很多问题理解的还不透彻,亡羊补牢. 比如:有int d;  int *d; bool d; double d:几个

JavaScript浮点数陷阱及解法

众所周知,JavaScript 浮点数运算时经常遇到会 0.000000001 和 0.999999999 这样奇怪的结果,如 0.1+0.2=0.30000000000000004.1-0.9=0.09999999999999998,很多人知道这是浮点数误差问题,但具体就说不清楚了.本文帮你理清这背后的原理以及解决方案,还会向你解释JS中的大数危机和四则运算中会遇到的坑. 浮点数的存储 首先要搞清楚 JavaScript 如何存储小数.和其它语言如 Java 和 Python 不同,JavaS

基础野:细说浮点数

Brief   本来只打算理解JS中0.1 + 0.2 == 0.30000000000000004的原因,但发现自己对计算机的数字表示和运算十分陌生,于是只好恶补一下.  本篇我们一起来探讨一下基础--浮点数的表示方式和加减乘除运算.   在深入前有两点我们要明确的:   1. 在同等位数的情况下,浮点数可表示的数值范围比整数的大:   2. 浮点数无法精确表示其数值范围内的所有数值,只能精确表示可用科学计数法m*2e表示的数值而已:      (如0.5的科学计数法是2-1,则可被精确存储:

《数字逻辑设计与计算机组成》一3.8 实数算术

3.8 实数算术 在第1章中已经简要地讨论过实数,例如,浮点数的表示方法.表3-10作为一个例子展示了3位指数值的3种不同表示方法,分别为2的补码有符号数.偏移量为3的偏置数和偏移量为4的偏置数.这三种指数表示法的指数范围分别为- 4- + 3.偏移量为3时的 3- + 4和偏移量为4时的- 4- + 3. 通常情况下,使用偏置指数能让设计者有更多的自由来决定计算机系统中实数的集合.在这个例子中,当偏移量为3时,最大正指数为4,而当偏移量为4时,最大正指数为3.类似地,当偏移量为3时,最小负指数