gpt4 book ai didi

java - 为什么 Java 中浮点型(32 位)的指数是 -126 而不是 -128?

转载 作者:行者123 更新时间:2023-12-02 01:15:34 25 4
gpt4 key购买 nike

32 位标准:

1 位数字的正/负值。 8 位用于指数,24 位用于尾数。

8 位指数,即 1 * 2^7 + 1 * 2^6 + ... = 255当最大指数为 127 时,最小指数应为 -128,即 126 + 128 = 255。

但是为什么 Java 说最小指数是 -126 呢? 255 - (127+126)= 2,所以有两个数字我们没有使用。

最佳答案

这个数字有一个“偏差”,这些位中的内容是什么?首先从中减去 0x7F 以获得您的值。使用值0x01可达到最低指数:0x01 - 0x7F = 1 - 127 = -126。达到最高值时为 0xFE:0xFE - 0x7F = 254 - 127 = 127

但是,指数值 0x000xFF 发生了什么?这就是为什么有 254 个而不是 256 个唯一指数可用:这两个是特殊的魔法,通常不可用。指数 0 既用于编码 0(如果分数的数字也是 0),也用于编码所谓的次正规数,即非常接近 0 的数字。

0xFF 用于特殊值;这就是 float 存储 NaN 和两个无穷大的方式。

关于java - 为什么 Java 中浮点型(32 位)的指数是 -126 而不是 -128?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58671529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com