float 和 double 的区别
来源:互联网 发布:淘宝怎么搜假手表 编辑:程序博客网 时间:2024/05/17 07:27
float表示单精度浮点数在机内占4个字节,用32位二进制描述。 double表示双精度浮点数在机内占8个字节,用64位二进制描述。浮点数在机内用指数型式表示,分解为:数符,尾数,指数符,指数四部分。 数符占1位二进制,表示数的正负。 指数符占1位二进制,表示指数的正负。 尾数表示浮点数有效数字,0.xxxxxxx,但不存开头的0和点 指数存指数的有效数字。 指数占多少位,尾数占多少位,由计算机系统决定。 可能是数符加尾数占24位,指数符加指数占8位 -- float. 数符加尾数占48位,指数符加指数占16位 -- double. 知道了这四部分的占位,按二进制估计大小范围,再换算为十进制,就是浮点数的数值范围。对编程人员来说,double 和 float 的区别是double精度高,有效数字16位,float精度7位。但double消耗内存是float的两倍,double的运算速度比float慢得多,java语言中数学函数名称double 和 float不同,不要写错,能用单精度时不要用双精度(以省内存,加快运算速度)。1. float i=(float) (1/3.0f); i=0.33333334 8位 2. double i= 1/3.0; i=0.3333333333333333 16位3. System.out.println("i="+(2.0-1.1)); i=0.8999999999999999 默认是double4. byte b = (byte)130; //结果为-126//System.out.println((byte)129);-127计算方法:数据130默认是int类型的十进制数据第一步十进制的130转换成二进制数据1 0 0 0 0 0 1 0第二步130是int类型是占4个字节的,所以在内存的表现形式是00000000 00000000 00000000 10000010做了截取后的结果为10000010通过观察最高位符号位是1,这是一个负数,因为在计算机中所有的数据都是以补码的形式出现的所以要算它的补码原码:1 0000010 原码变反码,最高位符号位不变,其他数值位1变0,0变1得反码反码:1 1111101 反码变补码就是反码加1得补码;1 1111110最终的看到的结果就是1 1111110最高为是符号位不运算,数值为转化为十进制是64+32+16+8+4+2=126符号位负所以为-126
0 0
- double和float的区别
- double和float的区别
- double和float的区别
- float 和 double 的区别
- float和double的区别
- double 和float区别
- java的float和double的区别
- float与double的精度和区别
- mysql float和double类型的区别
- Java中double和float的区别
- java中float和double的区别
- decimal,float和double的区别
- java中float 和double的区别
- decimal,float和double的区别
- Float、double和Bigdecimal的区别
- decimal,float和double的区别
- java float和double 区别
- float与double的区别
- PHP 全局变量 - 超全局变量解读
- robotframework使用之浏览器打不开,报错'Capture Page Screenshot' could not be run on failure: No browser is open
- JavaWeb学习笔记:错误及解决方法收录
- 蛇形矩阵
- 【洛谷】P1567 统计天数
- float 和 double 的区别
- BP神经网络模型与学习算法
- Git--提交项目到GitHub流程
- 用cflow工具生成代码函数调用关系
- codeforces 734 E. Anton and Tree (黑红树,缩点+dfs)
- servlet
- 谈谈目前我对区块链(Blockchain)的认识
- 漫谈继承技术(五)
- ubuntu16.04编译Android6.0环境