`

float与double的位分配

    博客分类:
  • Java
 
阅读更多
摘自网络:http://zhidao.baidu.com/question/344295417.html

单精度浮点数在机内占4个字节,用32位二进制描述。
双精度浮点数在机内占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型 内存分配4个字节,占32位,范围从10^-38到10^38 和 -10^38到-10^-38
例float x=123.456f,y=2e20f; 注意float型定义的数据末尾必须有"f"或"F",为了和double区别

(2)double型 内存分配8个字节,范围从10^-308到10^308 和 -10^-308到-10^-308
例double x=1234567.98,y=8980.09d; 末尾可以有"d"也可以不写
分享到:
评论

相关推荐

    详解java中float与double的区别

    float 的精度是 8 位有效数字,取值范围是 10 的 -38 次方到 10 的 38 次方,而 double 的精度是 17 位有效数字,取值范围是 10 的 -308 次方到 10 的 308 次方。 float 和 double 都可以用来进行浮点数的运算,...

    十进制和十六进制转换成float、double数据

    由于FPGA设计通常涉及位级操作,你可能需要将十六进制数转换为二进制形式,然后分配给逻辑门电路。在Verilog或VHDL等硬件描述语言中,可以使用十六进制常量直接定义,如`reg [7:0] hex_reg = 8'h1A;`,这里的`8'h1A`...

    float和double类型数据在内存中的存储方法

    `double`与`float`类似,但具有更高的精度和范围。在64位的`double`中,分配如下: - 符号位:1位 - 指数位:11位 - 尾数位:52位 对于`double`类型,偏移量(Bias)为1023。同样,`123.45`的`double`表示会更复杂...

    swift-BaseMath是Swift中float和double的基本数学函数

    在Swift中,处理浮点数(如Float和Double)的数学运算至关重要,因为这些类型广泛应用于科学计算、图形渲染、物理模拟等多个领域。`swift-BaseMath` 是一个专门为Swift设计的库,它提供了针对浮点数和双精度浮点数的...

    cls_align_longdouble.rar_float

    标题中的"cls_align_longdouble.rar_float"暗示了我们正在探讨一个与浮点数(float)对齐相关的主题,特别是在类(class)或结构体(struct)中使用long double类型时的对齐规则。描述指出我们要检查float类型的对齐...

    西门子STEP7中32位浮点数转换

    对于32位浮点数(FLOAT)的数据格式,具体的位分配如下: - 符号位(SIGN)位于第31位,用于标识数值的正负。 - 指数位(EXPONENT)占据第30至第23位,总共8位,表示浮点数的指数部分,指数是用偏移量表示的,对于...

    num_get_float.rar_float

    在双扩展精度格式中,通常的位分配如下: 1. 符号位:1位,0表示正数,1表示负数。 2. 指数值:11位,用于表示指数的偏移值。 3. 尾数(也叫 mantissa 或 significand):64位,用于表示数值的小数部分,其中前1位是...

    float2byte

    "float2byte"这个主题关注的是浮点数(float)与字节(byte)之间的转换,这是一个基本的计算机编程概念,特别是在处理二进制数据和内存操作时。浮点数是一种用于表示带有小数部分的数值的数据类型,而字节则是一组8...

    自己动手写C语言float浮点数转换字符串的函数

    浮点数在计算机中通常使用IEEE 754标准进行存储,分为单精度(`float`)和双精度(`double`)两种。单精度浮点数占用32位,包括1位符号位、8位指数位和23位尾数位。转换时,我们需要考虑正负号、指数部分和小数部分...

    浅谈C语言数据与内存分配空间和地址的联系

    基于给定文件的信息,本文将深入探讨C语言中数据与内存分配空间及地址之间的关联,并通过对几种典型数据类型的分析帮助读者更好地理解这一概念。 ### 一、基础数据类型 C语言的基础数据类型主要包括整型(int)、...

    C++Primer第五版 第2章 变量和基本类型(练习解答)

    例如,`int`通常表示32位整数,`float`是单精度浮点数,占用32位,而`double`是双精度浮点数,占用64位。 3. **字面常量**:字面常量是程序中直接出现的固定不变的值,如数字(整数或浮点数)、字符(如'a'或'\n')...

    C语言小数的内存表示.pdf

    float和double作为两种不同的浮点数类型,在内存中的位数分配、精度以及表示范围各有不同,它们能够表达的数值范围和精度差异显著。理解这些概念对于编写高精度数值计算程序非常重要,尤其是在需要处理浮点运算的...

    java中内存分配

    在 Java 中,基本数据类型共有 8 种,即 int, short, long, byte, float, double, boolean, char。这些类型的定义是通过诸如 int a = 3; long b = 255L;的形式来定义的,称为自动变量。值得注意的是:自动变量存的...

    浮点数在计算机内存中的存储格式

    当我们声明一个变量float f = 2.25f时,计算机是如何分配内存的呢? 其实,不论是float类型还是double类型,在计算机内存中的存储方式都是遵从IEEE的规范的。float遵从的是IEEE R32.24,而double遵从的是R64.53。...

    浮点数在计算机中存储方式是怎样的

    C语言和C#语言中,对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据占用32bit,double数据占用64bit,我们在声明一个变量float f= 2.25f的时候,是如何分配内存的呢?如果胡乱分配,...

    java基本类型与byte数组互相转换.pdf

    这里也是通过右移和按位与操作,将int的每个部分分配到字节数组的不同位置。 3. **longToByteArr(Long):** 这个方法用于将long类型转换为一个包含八个字节的数组。同样,它通过逐次右移和按位与操作,将long的每个...

    浮点数转换工具.rar

    标准中规定了符号位、指数位和尾数位的分配,以及如何进行加减乘除、比较和舍入等操作。浮点数转换工具可以帮助用户查看这些二进制表示,以及它们对应的十进制、十六进制和科学计数法形式,这对于理解浮点数的工作...

    变量学习札记

    在C#编程语言中,变量是程序中存储...- double是64位,精度和范围均高于float。 - decimal适合财务计算,精度高,但速度相对较慢。 了解这些基本概念后,你可以更有效地编写和理解C#代码,确保变量的正确使用和管理。

    JAVA虚拟机内存分配与回收机制[文].pdf

    栈中主要存放一些基本类型的变量(int, short, long, byte, float, double, boolean, char)和对象句柄。栈有一个很重要的特殊性,就是存在栈中的数据可以共享。 String是一个特殊的包装类数据,可以用两种形式来创建...

    C#的数据类型

    double 类型是 64 位浮点数,取值范围在 -1.8e308 到 1.8e308 之间。 结构型是使用 struct 关键字定义的类型。例如: ```csharp public struct Point { public int X; public int Y; } ``` 枚举类型是使用 enum ...

Global site tag (gtag.js) - Google Analytics