E38故障代码:如何浮动范围大与4个字节(±3.40282347E+ 38)(4 byte max value)

在 Java 中,intfloat类型都是4 字节

那么int如何表示-2,147,483,6482,147,483,647的范围,其中float大约有±3.40282347E+38F,而两者具有相同的有限字节量?

根据我的理解,两者都应该具有相同的范围,因为它们具有相同的字节量。

7

“浮动”点意味着您的数字的小数部分的位数可以改变,以表示您的数字“尽可能最好”,因为它的大小决定了约束。

让我们暂时忘记float数据类型的 4 个字节,并假设您的“浮点”类型最多可以存储 10 位数字加上负符号。这意味着您可以准确地表示从:-9 999 999 999+9 999 999 999的数字。但是,如果您想要一个小数,则可以准确地表示从-999 999 999.93

现在,让我们通过讨论意义指数来形式化一些解释:

有效数字包含您的有效数字

指数表示 10 乘数的指数,或者如果更容易,则表示移动小数点的位置(0 位于第一个有效数字之前)。

假设您的“浮点”数据类型在其有效数中最多可以有 4 位数字,在其指数中最多可以有 1 位数字,再加上减号有效数指数。您将能够表示-0.9 999 * 10^9 = -999900000+0.999 9 * 10^9 = +999900000的数字,因为您只能表示数字。

这解释了为什么范围如此之大,尽管大小只有 4 个字节,如你的问题所述。

要完成您对此事的了解,请将上述概念带入二进制(您的典型float使用 4 位作为指数,23 位用于有效数和 1 位用于有效数的符号)。

是一个很好的起点。编程目的的主要收获通常是了解在给定数据类型(“精度”)的情况下可以存储多少个十进制数字,因为这将确定哪种特定的十进制格式最适合您的目的。

有关更多信息,请参见以下链接:https://en..org/wiki/Floating-point_arithmetic#IEEE_754:_floating_point_in_modern_computers

请注意,理解二进制系统上的浮点数的概念在信息技术中非常重要,因为即使是最简单的计算也会受到它的严重影响。

例如,在计算机(二进制)上表示的浮点是编写以下内容的原因:

public cl MyCl {
    public static void main(String args[]) {
      double x=0.1f;
      double y=0.2f;
      double z=0.3f;
      if(x+y == z) {
          System.out.println("something");
      }
      else {
          System.out.println("something else");
      }
    }
}

将反直觉地输出something else,但如果您开始使用数字或将类型更改为float,它将产生正确的输出。

所以请注意:你需要完全理解这个概念。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(375)
Sm igg le:蓝牙LE询问权限(ipad ask permission not working)
上一篇
查看linux重启时间:linux重启的详细程序(reboot on linux)
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(59条)