当前位置:  开发笔记 > 编程语言 > 正文

inf和NaN的内部表示是什么?

如何解决《inf和NaN的内部表示是什么?》经验,为你挑选了2个好方法。

我和朋友正在讨论今天午餐时Inf和NaN的存储方式.

以Fortran 90为例.4字节实数可以获得Inf或NaN的值.这是如何在内部存储的?据推测,4字节实数是由32位二进制数内部表示的数字.Inf和NaN是否存储为33位二进制数?



1> Andy Mikula..:

特别是从Pesto的链接:

IEEE单精度浮点标准表示需要32位字,其可以表示为从左到右编号为0到31.第一位是符号位,S接下来的8位是指数位' E',最后23位是分数' F':

S EEEEEEEE FFFFFFFFFFFFFFFFFFFFFFF  
0 1      8 9                    31  

V单词表示的值可以确定如下:

如果E=255F非零,那么V=NaN("不是数字")

如果E=255F是零和S1,然后V=-Infinity

如果E=255F是零和S0,然后V=Infinity

如果0那时V=(-1)**S * 2 ** (E-127) * (1.F)" 1.F"意图表示通过在F前面加上隐式前导1和二进制点而创建的二进制数.

如果E=0F非零,则V=(-1)**S * 2 ** (-126) * (0.F)这些是"非标准化"值.

如果E=0F是零和S1,然后V=-0

如果E=0F是零和S0,然后V=0



2> Pesto..:

大多数浮点表示基于IEEE标准,其已设置为Inf和NaN定义的模式.


链接坏了.
推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有