Fortran inf和NaN的内部表示是什么?
我和一位朋友在讨论今天午餐时中程和南航的存储方式Fortran inf和NaN的内部表示是什么?,fortran,Fortran,我和一位朋友在讨论今天午餐时中程和南航的存储方式 以Fortran 90为例。4字节REAL可以获取Inf或NaN的值。这是如何存储在内部的?据推测,4字节实数是一个内部由32位二进制数表示的数字。Inf和NaN是否存储为33位二进制数?大多数浮点表示法都基于IEEE标准,该标准定义了Inf和NaN。特别是Pesto的: IEEE单精度浮点标准表示法需要一个32位字,可以表示为从0到31、从左到右的数字。第一位是符号位,S,接下来的八位是指数位,E,最后的23位是分数“F”: S EEEEEEE
以Fortran 90为例。4字节REAL可以获取Inf或NaN的值。这是如何存储在内部的?据推测,4字节实数是一个内部由32位二进制数表示的数字。Inf和NaN是否存储为33位二进制数?大多数浮点表示法都基于IEEE标准,该标准定义了Inf和NaN。特别是Pesto的: IEEE单精度浮点标准表示法需要一个32位字,可以表示为从0到31、从左到右的数字。第一位是符号位,
S
,接下来的八位是指数位,E
,最后的23位是分数“F
”:
S EEEEEEEE FFFFFFFFFFFFFFFFFFFFFFF
0 1 8 9 31
S eeeeeeeeeffffffffffffffffffffff
0 1 8 9 31
由单词表示的值V
可确定如下:
- 如果
和E=255
为非零,则F
(“非数字”)V=NaN
- 如果
和E=255
为零,而F
为S
,则1
V=-无穷大
- 如果
和E=255
为零,而F
为S
,则0
V=无穷大
- 如果
0