Java中,long型是64位的,float型是32位的。为什么long型可以自动转float型呢?

这里就涉及到浮点数在内存中的存储问题了。对于byte,short,int,long四个整数类型而言,它们在内存中无一例外都是直接换算成二进制存储的,所以我们可以直接计算出它们的最大值。二进制的第一位是符号位不计算入数值,拿byte来说,数据存储形式就是0000-0000,一个字节占八位,除去第一位符号位外,后边全为1的话就是0111-1111,换算成十进制答案是127.

至于为什么最小的数是-128呢,这又有讲究了。计算机中负数是以补码形式存储的,一般说来,八位以内最小的负数应该是11111-1111,我们对其取反,结果就是1000-0000,再得到补码即1000-0001。是的,0001,补码是原码除符号位外逐位取反再加一的结果,但是对于补码而言1000-0001并不是八位二进制能表示的最小的数,最小的应该是1000-0000,对1000-0000求原码,就得到了1001-0000-0000,即我们十进制数的-128。同样的,对于short等其它整数类型也一样。

那么,float类型呢?4个字节,32位,第1位是符号位(数符),即S,接下来的8位是指数域(阶码),即E,最后的23位,是小数域(尾数),即M。对于一个十进制数112.5,我们用科学计数法表示就是1.12510^2,所以呢,对于一个二进制数,我们的表示就应该是1.XXX 2X,由于第一位永远都是1所以直接省去,因此表示为S.M*2E。所以float的取值范围是-2128到2128,远远大于long的最大值。

所以java中long类型自动转换为float类型。

简单来说因为浮点数用科学计数法存储的,而整数是用二进制存储的。所以虽然long型是64位的,float型是32位,但是float型所能表示的数要远远大于long型。

java long to float_为什么Java中long可以自动转换成float相关推荐

  1. csv 中 数值被自动转换成科学计数法 的问题 excel打开后数字用科学计数法显示且低位变0的解决方法

    csv 中 数值被自动转换成科学计数法 的问题 excel打开后数字用科学计数法显示且低位变0的解决方法 参考文章: (1)csv 中 数值被自动转换成科学计数法 的问题 excel打开后数字用科学计 ...

  2. java中float类型占4个字节,long类型占8个字节,为什么long类型能自动转换成float类型,且float类型为什么表示的范围比long类型大

    作为常识我们都知道,float型在内存中占用的是4个字节,而long型占用8个字节.单从字节数来看,long型是大于float型的.但实际上,float表示的范围却是比long要大的 float类型的 ...

  3. java强制转换成float_在Java中什么时候double必须强制转换成float 就是要在数值后加f或者强制转换...

    满意答案 auyps 2013.08.05 采纳率:47%    等级:12 已帮助:8409人 好吧,我也来说说double与float之间的转换 首先,我说一下定义时赋值的情况 比如: 你可以这样 ...

  4. java导出excel float_【Java】导入导出Excel表格

    1.将excel导入到内存 1. 调用工作簿Workbook的静态方法getWorkbook(),获得工作簿Workbook对象 InputStream in = new FileInputStrea ...

  5. 在java中如何把字符串转换成时间格式?

    在java中如何把字符串转换成时间格式? 检举 | 2007-11-28 17:26 提问者:baixiao429 | 悬赏分:20 | 浏览次数:6645次 有这样一个字符串:"20070 ...

  6. java自动转换需要的开头_字符串和数值型进行运算时,字符串如果不是数字开头,会自动转换成什么?...

    [单选题]下列哪个不属于氯丙嗪用于人工冬眠疗法的适应证 [单选题]某流域有甲.乙两个雨量站,它们的权重分别为0.4,0.6,已测到某次降水量,甲为80.0mm,乙为50.0mm,用泰森多边形法计算该流 ...

  7. word表格导出html代码,(网页源代码中的表格数据怎么导出excel)如何将把从WORD、EXCEL中复制的内容转换成HTML源代码,再通过网页表单提交上传到数据库?...

    如何将ASP页面中的表格生成一个Excel表,求源码 '给你个例子吧.保存为 asp文件看看.具体就在第一句. New Page 1PJ计画 第版 案件No 案件名 主门 顾客 PJ责任者 営业担当 ...

  8. 在 Linux 中把一个网页转换成 PDF的技巧介绍

    你如何在 Linux 中把一个网页转换成 PDF?你可以选择使用每个 Linux 发行版上的网页浏览器(GUI),或者使用终端将网页变成 PDF 文件. 在这里,我将提到这两种方法来帮助你完成工作. ...

  9. Vue.JS项目输入框中使用v-model导致number类型值自动转换成string问题的解决方案

    老文章了,目前用el-input v-model.number就能解决 很简单的操作,不知道当初在做什么,下文请直接忽略- Vue.JS项目中v-model导致输入框中number类型值自动转换成st ...

最新文章

  1. 【Laravel学习篇 · 一】Windows下起步就遇麻烦
  2. python 计算累计人数_免费Python入门课程,看到就是赚到~
  3. python1080p壁纸高清图片_Python爬取高清桌面壁纸(附源码),直接运行即可
  4. 不要迷失在技术的海洋中【转】
  5. mongo ttl索引
  6. 重庆理工大学国际学院计算机图形学试题,哈尔滨理工大学-第一学期考试试题答案B卷考试.doc...
  7. 目录的操作 c# 1614532397
  8. 基于Cmail的邮件收发限制说明
  9. 【李宏毅2020 ML/DL】P85 Transfer Learning
  10. 【转载】robocopy的用法
  11. rtk采点后如何导入cad_奥维地图和cad
  12. mysql 1052 ambiguous_mysql错误:Column ‘id’ in field list is ambiguous的解决方法
  13. 数据中心加湿系统计算及方法探讨【新规范加湿方式对比及计算分析】
  14. windows10电脑连接小爱音箱(完美解决连接上无声音)
  15. Python实战 | 完美爬取LOL全英雄皮肤高清原画 JavaScript动态网页
  16. 动态半透膜背景的热气球漂浮登陆界面 很赞
  17. c语言.jpg图片转成数组_AWTK——基于C语言开发的GUI框架,功能强大,支持跨平台同步开发...
  18. RNN结构,双向LSTM,Transformer, BERT对比分析
  19. 快速接入百度地图定位、描点
  20. NFS共享存储服务介绍与案例详细配置过程

热门文章

  1. Build 2019:微软正式宣布 .NET 5
  2. .NET Core使用微软AI认知服务识别文字语言
  3. “被狗啃”的按钮引发的开源社区信任危机
  4. Microsoft宣布正式发布Linux on ASE
  5. Cactus在jexus上安装
  6. 在Windows Server 2012 R2 Standard 部署 ASP.NET Core程序
  7. 提交Form表单,submit之前做js判断处理
  8. 【专升本计算机】2021年甘肃省专升本计算机全真模拟试题(五)
  9. 【CASS精品教程】南方CASS内业基本作图--野外测记草图法绘制常见地物教程
  10. 通渭县义岗川镇之行(2020年11月19日)