Java中null和浮点数相乘_jvm规范之浮点数 - 你知道吗,有个数字它和自身不相等...
原标题:jvm规范之浮点数 - 你知道吗,有个数字它和自身不相等
你知道吗,有个数字它和自身不相等,你知道吗,有两个数字他们是相等的,但是1.0除以他们得到的结果却是大相径庭。本文将为你揭开这神秘的面纱,并自此开启 java jvm 之旅。关注我,我接下来将持续更新 java jvm 知识 、数据结构与算法,你若关注,我必不负所望!
今天,我们说 jvm 里浮点数的表示,已经整理如下:
浮点数的表示,目前几乎都是用 IEEE754 标准,它包括了:正负数,正负0,正负无穷大,以及 NaN(Not a number),其中,NaN = 0.0f / 0.0f,NaN 是无序的,而且 NaN != NaN,本身不相等,这是唯一一例,也无法用标准形式表示。
正负 0 虽然是相等的,但是有区别,1.0 / 0.0 等于正无穷大,1.0/-0.0 等于 负无穷大。此外,正负 0 就没区别了。
现在,我们正式走进浮点数的世界,java jvm 里不只有 单精度浮点数集合,还有单精度扩展指数集合,不只有双精度浮点数集合,还有双精度扩展指数集合。但是,单、双精度扩展指数集合是可选的,而单双精度浮点数集合是必须要实现的,扩展指数集合可以代替浮点数集合。
IEEE754 标准里,一个浮点数表示为:s × m × 2^(e-N+l) 来表示,其中,s 为正负1,表示数字的符号,
m 是一个小于 2^N 的正整数, e 是一个介于 Emin=-(2^(k-1) - 2) 和 Emax=2^(K-l) - l 之间的整数,包括 Emin 和 Emax。N 与 K 的范围则取决于当前采用的浮点数集合。
对于一个数字,可能存在多组 s、m与e的值来表示,此时,可以把 m 的值减半,而 e + 1,得到另一种表示,如果某种表示里 m >= 2^(n-1),则称该表示为标准表示,如果没有,如果 m >= 2^(n-1) 不成立,则称为非标准表示,如果一个数字不存在标准表示,则称这个值为非标准值。
至于 N、K 的范围,请参考下图:
我得承认,浮点数的表示理解起来是比较吃力,我当年读大学时就不理解,如今,还是一知半解。
关注我,带你揭秘 java jvm 奥妙,成为 java 大神。记得关注 + 收藏哦,请随意评论,多谢。返回搜狐,查看更多
责任编辑:
Java中null和浮点数相乘_jvm规范之浮点数 - 你知道吗,有个数字它和自身不相等...相关推荐
- java中null是常量吗_C_NULL Julia中的常量
java中null是常量吗 Julia| C_NULL常数 (Julia | C_NULL Constant) C_NULL is a constant of Ptr{Nothing} type in ...
- 在Java中使用标准输入输出设备进行字符串,整数浮点数等 的输入输出操作
在Java中使用标准输入输出设备进行字符串.整数浮点数等的输入输出操作 在Java语言中进行标准输入输出(键盘显示器)需要通过创建输入输出流对象的方式进行,一般情况下我们可以使用 BufferedRe ...
- java null什么意思_浅谈java中null是什么,以及使用中要注意的事项
1.null既不是对象也不是一种类型,它仅是一种特殊的值,你可以将其赋予任何引用类型,你也可以将null转化成任何类型,例如: Integer i=null; Float f=null; String ...
- java 中 null==obj 与 obj==null
之前上课,老师推荐将常量放前面进行判断,可以避免空指针的问题.忘记是以null == obj 还是 equals()方法进行说明了.下面进行实践复习. 一. null==obj 与 obj ==nul ...
- java中null与_java中NULL与 的区别
null和""的区别 问题一: null和""的区别 String s=null; string.trim()就会抛出为空的exception String s ...
- java中null+““和null+null会等于什么鬼呢?
在java中,null+""会等于什么鬼? null+""=? null+null又会等于什么鬼呢? null+null=? 直接上代码和截图. 注意:看如下代 ...
- java中表示根号三_Java命名规范
定义规范的目的是为了使项目的代码样式统一,使程序有良好的可读性. 包的命名 (全部小写,由域名定义) Java包的名字都是由小写单词组成.但是由于Java面向对象编程的特性,每一名Java程序员都 可 ...
- java中null的使用方法_使用java中的方法避免!= null
I want to avoid writing getView != null every time I want to use getView ? 您可以使用Null Object模式来避免在程序中 ...
- 在java中null的作用_在java中避免使用!= null有什么好处?
使用空集合或"空白"操作而不是null的主要优点是,大多数情况下,此类对象仍然可以在代码中工作而无需进一步修改.从本质上来说,空值更容易出错. 请使用以下代码,例如: String ...
最新文章
- LeetCode实战:最长有效括号
- 南外计算机课,南外小升初,怎么考?
- 单点登录系统SSO概述 | 单点登录讲解(1)
- 【网址收藏】主流Ansible Web UI的部署与使用:Tower AWX Semaphore TiOps
- 不进行格式化将U盘快速转换为NTFS格式
- 洛谷——P1290 欧几里德的游戏
- 关于字体图标在firefox上本地访问无法显示的问题分析
- 通向码农的道路(enet开源翻译计划 二)
- 告别程序员生涯,一点感慨
- Java+Swing+mysql实现学生选课管理系统
- node.js:setTimeout实现同步delay延时函数
- 这些你曾深信不疑的大众心理学观点,都是谬论!
- Centos调整分区存储大小
- jQuery——淘宝购物车结算页面demo
- C/C++《数据结构课程设计》任务书[2022-12-27]
- P4在table中使用ternary匹配
- IOS获取农历节日.节气
- disk drill 中文版|disk drill pro v4.0.533中文便携版
- 快手扫码登录【2021-12-03】
- ASA广告投放之关键词的选择
热门文章
- .net中Task.WaitAll和WaitAny同步的等待Task完成
- no system images installed for this target这个问题如何解决?
- Android应用程序中的多个Activity的显示创建和调用
- 35岁是青春的后期你最好把下面十件事做好
- [转载] Python简介、linux上Python及其IDE的安装和详细配置
- [转载] 细思极恐的星座分析(下)- 外太空?内子宫?人类的天赋从何而来?
- MySQL中boolean类型设置
- 分享:Python中的位运算符
- Android MonkeyRunner
- SharePoint 2013 Ajax 造成页面无法编辑