先来看几个例子:

public class Thirtyfirst1{
public static void main(String[] args){
int i = 2000000000;
int count = 0;
for(float f = i; f < i + 50 ; f ++){
count++;
}
System.out.println(count);
}
}

会输出多少?

public class Thirtyfirst1{
public static void main(String[] args){
int i = 2000000000;
int count = 0;
for(float f = i; f < i + 64 ; f ++){
count++;
}
System.out.println(count);
}
}

这个会输出多少?

public class Thirtyfirst1{
public static void main(String[] args){
int i = 2000000000;
int count = 0;
for(float f = i; f < i + 65 ; f ++){
count++;
}
System.out.println(count);
}
}

这个输出多少?

第一题:0

第二题:0

第三题:死循环

再看下面的解析时需要知道浮点数的存储,以及int转float时的步骤(java浮点数剖析

一、首先看看2000000000的二进制

01110111  00110101  10010100  0(0000000)

括号内为转换成浮点数后要舍弃的尾部

转换成浮点数后

0  10011101  11011100 11010110 0101000
S    E          M(23位)

二、然后观察2000000000+64

01110111  00110101  10010100  0(1000000)

转换成浮点数

0  10011101  11011100 11010110 0101000

发现和2000000000的浮点存储一模一样

三、然后观察2000000000+65

01110111  00110101  10010100  0(1000001)

显然

01110111  00110101  10010100  0

01110111  00110101  10010100  0(1000001)
01110111  00110101  10010100  1

显然中间的数更接近下面的数,因此浮点化之后

0  10011101  11011100 11010110 0101001

比2000000000的浮点存储大1

因此前两个程序打印0就可以理解了(重点要知道怎么转化成浮点数,以及怎么舍弃尾部)

四、1的浮点表示

0  01111111  0000000 00000000 00000000

五、浮点数的加减运算

对阶:

  阶差位30

  故f++对f基本上没有影响

  因此会是死循环!!!

Float之谜的更多相关文章

  1. js实现省市区联动

    先来看看效果图吧,嘻嘻~~~~~~~~~~~~~~~~~~~· 代码在下面: 示例一: html: <!DOCTYPE html> <html> <head> &l ...

  2. Microsoft HoloLens 技术解谜(下)

    读者提问之“HoloLens 的深度传感器有没有可能是基于 TOF?” 先介绍下背景知识,市面上常见的有三种类型的深度传感器: 结构光,这个技术的代表产品是 Kinect 一代,它的传感器芯片用的是 ...

  3. Java常见问题3:周期之谜

    谜24 byte是有符号的.范围是-128 - 127. 而0x90是int类型. 比較的时候.不相等. 假设想让其相等,须要进行类型转换:(byte & 0xff) 或者 (byte)0x9 ...

  4. CSS float 浮动属性

    本篇主要介绍float属性:定义元素朝哪个方向浮动. 目录: 1. 页面布局方式:介绍文档流.浮动层以及float属性. 2. float:left :介绍float为 left 时的布局方式. 3. ...

  5. 在树莓派Raspbian下安装支持Hard Float的.NET环境

    [题外话] 最近入了个树莓派玩,系统装的官方推荐的Hard Float的Raspbian,由于衍生自Debian,所以Mono什么的非常好装.但是官方源中的Mono在Hard Float的Raspbi ...

  6. 对CSS中的Position、Float属性的一些深入探讨

    对CSS中的Position.Float属性的一些深入探讨 对于Position.Float我们在平时使用上可以说是使用频率非常高的两个CSS属性,对于这两个属性的使用上面可能大多数人存在一些模糊与不 ...

  7. CSS float 定位和缩放问题

    今天调试一个看起来很简单的前端问题,但却花了太多的时间,示例代码: <!DOCTYPE html> <html> <head> <title></ ...

  8. chrome中不可见字符引发的float问题

    起因是刷知乎时碰到这么个问题:https://www.zhihu.com/question/41400503 问题代码如下: <!DOCTYPE html> <html lang=& ...

  9. c# float显示时保存一位小数

    UI显示时候,需求保留一位小数 //保留一位小数 参考: http://blog.sina.com.cn/s/blog_620531730100kfz6.html float ff = 1.01f; ...

随机推荐

  1. codeforce --- 340D

    D. Bubble Sort Graph time limit per test 1 second memory limit per test 256 megabytes input standard ...

  2. Dev控件用法 aspxTreeList 无刷新 aspxGridView 数据

    主要是利用 ASPxTreeList 点击事件回发服务器进行数据重新绑定 ASPxTreeList: <SettingsBehavior ExpandCollapseAction="N ...

  3. 汇编学习笔记(14)BIOS对键盘输入的处理

    字符的处理 键盘输入的字符一般由int9中断例程从60h端口中读取,并存放在键盘缓冲区中,由int16h例程从键盘缓冲区中读取相应字符,CPU对键盘输入a.shift_a的处理过程如下 1.一开始没有 ...

  4. Win32消息机制

    1. 消息机制     过程驱动:程序是按照我们预先定义好的顺序执行,每执行一步,下一步都已经按照预定的顺序继续执行,直到程序结束.       事件驱动:程序的执行顺序是无序的.某个时间点所执行的代 ...

  5. 使用Jquery解析Json基础知识(转)

    在WEB数据传输过程中,json是以文本,即字符串的轻量级形式传递的,而客户端一般用JS操作的是接收到的JSON对象,所以,JSON对象和JSON字符串之间的相互转换.JSON数据的解析是关键. 先明 ...

  6. 文件夹oradiag_是如何产生的

    如果sqlnet.ora不可用或者ADR_BASE参数未定义,那么11g的 SQL*Net将创建这些文件夹 (详情:http://download.oracle.com/docs/cd/B28359_ ...

  7. 《Numerical Methods》-chaper4-一元非线性方程的解

    在许多生产时间问题中,我们根据已知条件往往会列出一个一元非线性方程,一个最典型的例子就是银行存款的问题,由于其利息需要基于前一年的本息和,因此列出来的方程x的指数往往是高次的.还有物理问题当中一系列用 ...

  8. Struct.xml Action配置

    <package name="default" namespace="/" extends="struts-default"> ...

  9. [置顶] c# asp.net 修改webconfig文件 配置

    c# asp.net 修改webconfig文件 配置 #region 修改config文件 /// <summary> /// 修改config文件(AppSetting节点) /// ...

  10. PHP运行出现Notice : Use of undefined constant 的完美解决方案

    Notice: Use of undefined constant title - assumed 'title' in F:\wamp\www\load_myweb.php on line 22No ...