关闭

追本溯源——JAVA中为什么float型最大值大于long型?

381人阅读 评论(0) 收藏 举报
分类:

 最为一个常识,我们都知道浮点型在内存中占用的是4个字节的空间,而long型占用的是8个字节的空间。可是为什么4个字节的float型的最大值会大于long型的最大值呢?

       我们都知道,float类型的范围是:一3.403E38~3.403E38。而long类型的范围是:-2^63~2^63-1(大概是9*10^18)。

       我以前也是简单的记住就算完事了,对于它为什么会这样却没有考虑过。

 

       下面给大家分享一下我现在的理解:

         long整型数,在内存中占用8个字节共64位,它表示的数值有264次方,平分正负,数值范围是负263次方到正263次方-1

    而float在内存中占4个字节,共32位,但是浮点数在内存中是这样的:

        V=(-1)^s * M * 2^E

 

    浮点数的32位不是简单的直接表示大小,而是按照一定的标准分配的。

    其中第1位,符号位,即S

    接下来的8位,指数域,即E

    剩下的23位,小数域,即MM的取值范围为[12)或[01)。

    也就是说,浮点数在内存中的二进制值不是直接转换为十进制数值的,而是按照上述公式计算而来,通过这个公式,虽然只用到了4个字节,但是浮点数却比长整型的最大值要大。

 

    这也就是为什么在数据转换的时候,long类型转换为float类型的根本原因所在!

0
0
查看评论

Java中为什么float型最大值大于long型?

最为一个常识,我们都知道浮点型在内存中占用的是4个字节的空间,而long型占用的是8个字节的空间。可是为什么4个字节的float型的最大值会大于long型的最大值呢?        我们都知道,float类型的范围是:一3.403E3...
  • u011240877
  • u011240877
  • 2015-08-17 12:01
  • 2254

Java中关于为什么long能自动转换成float类型的疑问解决

最为一个常识,我们都知道浮点型在内存中占用的是4个字节的空间,而long型占用的是8个字节的空间。可是为什么4个字节的float型的最大值会大于long型的最大值呢?   我们都知道,float类型的范围是:一3.403E38~3.403E38。而long类型的范围是:-2^63~2^63-1(大...
  • hexu8080
  • hexu8080
  • 2016-12-29 09:28
  • 2722

Java中long数据类型转化为float疑问解答

最为一个常识,我们都知道浮点型在内存中占用的是4个字节的空间,而long型占用的是8个字节的空间。可是为什么4个字节的float型的最大值会大于long型的最大值呢?   我们都知道,float类型的范围是:一3.403E38~3.403E38。而long类型的范围是:-2^63~2^63-1(大...
  • zjkC050818
  • zjkC050818
  • 2017-04-19 11:23
  • 914

java中long比float小的原因

java中,long型占64字节,float型占32字节,为什么long表示的最大数还比float小 public class MaxValueTest { /** * @param args */ public static void main(String[] args) { S...
  • yuxin6866
  • yuxin6866
  • 2016-08-10 10:48
  • 2280

Java中的long类型和Long类型比较大小

Java中我们经常要做一些判断,而对于判断的话,用的最多的便是“>”、“==”、“ Java中Long和long的区别 Java的数据类型分为两种: 1、基本类型:byte(8),short(16),int(32),long(64),float(32),double(64),char(16),...
  • zhangzehai2234
  • zhangzehai2234
  • 2016-05-07 13:36
  • 19448

int float double 最大值,最小值

http://blog.csdn.net/zxy_snow/article/details/6123551 中没有double的最大最小值。。。   如果输出的比如%.100lf输出2.23432432,没有达到100位,则最后2后面不一定都是0。  ...
  • zb872676223
  • zb872676223
  • 2014-06-13 17:27
  • 1618

int,long,long long类型的数值范围

int ,long ,long long 等各种数据类型的范围
  • qianbitou000
  • qianbitou000
  • 2016-07-18 09:15
  • 15724

C/C++ int、long、double、char等各种内置数据类型的表示范围(最大最小值)

详细介绍C/C++ int、long、double、char等各种内置数据类型的表示范围(最大 - 最小值) 执行结果如下: int、long、double、char等各种内置数据类型的表示范围(最大最小值)" TITLE="C/C++ int、lon...
  • aoshilang2249
  • aoshilang2249
  • 2014-07-15 16:45
  • 2690

char、int、short、float等数据类型的最大值和最小值大全

头文件limits.h和float.h分别提供有整数类型和浮点类型的大小限制的详细说明.可以用文本编辑器来打开和查看系统的头文件.     #include     #include     #include ...
  • windowsshaking
  • windowsshaking
  • 2012-03-19 12:44
  • 6112

关键字分节3(基本数据类型-short、int、long、char、float、double)

基本数据类型----short、int、long、char、float、double 基本类型 构造类型 指针类型 空类型void 数值类型 字符类型char 枚举类型enum 整 型 浮点型 单精度型float 双精度型double 短整型short 长整型long 整型int 数组 结构体...
  • LiuNian_SiYu
  • LiuNian_SiYu
  • 2016-10-09 18:32
  • 595
    个人资料
    • 访问:159028次
    • 积分:3304
    • 等级:
    • 排名:第12142名
    • 原创:172篇
    • 转载:52篇
    • 译文:0篇
    • 评论:15条
    最新评论