Long的大小是8字节,那么如何在JAVA中"提升"浮动(4字节)?

SMa*_*gic 7 java long-integer type-promotion

我在Java中读到long类型可以提升float和double(http://www.javatpoint.com/method-overloading-in-java).我想问一下,长整数在JAVA中占用8个字节的内存,浮点数需要4个字节,然后这个促销如何工作?如果我们以这种方式推广,我们是否有可能面临一些数据丢失?

另外值得注意的是,所有其他类型的促销都是从较小尺寸的原始数据类型到类似或更大尺寸的数据类型.

  • byte to short,int,long,float或double
  • 短,int,long,float或double
  • char到int,long,float或double
  • int到long,float或double
  • 长期漂浮或加倍_______________例外的Float
  • 漂浮加倍

das*_*ght 11

long使用更多的字节,但它有一个较小的范围:虽然long不能超过2 63,float可以去约2 127.显然,范围扩展正值的精度较低的价格,但由于范围float较大,从转换longfloat正在促销.


Pau*_*aul 8

float以与整数类型不同的方式表示.有关浮动类型的更多信息,请阅读:https://en.wikipedia.org/wiki/Single-precision_floating-point_format.熟化的内容如下所示:浮点格式由符号位组成,指数为8位,值的小数部分为23位.该值的计算如下:( - 1)^ signbit*1.fractionalpart*2 ^(指数 - 127).因此,该算法允许表示比64位整数类型更大的值.