Floating point 尾数中点的位置

Floating point 尾数中点的位置,floating-point,Floating Point,我试图理解java是如何使用浮点运算的。据我所知,32位(浮点)中必须有符号、指数和尾数。然而,我无法理解java如何定义尾数中的小数部分。据我所知,尾数可以从0,….到9,…. 问题是java如何定义点的位置。有人能解释一下吗?Java没有定义float的工作原理,IEEE有 float是一种二进制格式,因此正常数字的24位尾数的可能范围为 0b1.0000 0000 0000 0000 0000 0000 到 这表示1.0到2.0-1/2^24 对于正常数字,尾数总是以1开头,因此它实际上

我试图理解java是如何使用浮点运算的。据我所知,32位(浮点)中必须有符号、指数和尾数。然而,我无法理解java如何定义尾数中的小数部分。据我所知,尾数可以从
0,….
9,….


问题是java如何定义点的位置。有人能解释一下吗?

Java没有定义
float
的工作原理,IEEE有

float
是一种二进制格式,因此正常数字的24位尾数的可能范围为

0b1.0000 0000 0000 0000 0000 0000

这表示
1.0
2.0-1/2^24

对于正常数字,尾数总是以
1
开头,因此它实际上不会被存储。这是因为这些值是

sign * 2^exp * mantissa.
exp经过调整,尾数从
1开始。
也有一些次正常的数字不这样做,但这只适用于非常小的数字

如果您想了解浮动是如何表示的,可以查看

int i = Float.floatToRawIntBits(1.5);

i
将具有代表
浮点值的32位值

Java不定义
浮点值
的工作方式,IEEE定义

float
是一种二进制格式,因此正常数字的24位尾数的可能范围为

0b1.0000 0000 0000 0000 0000 0000

这表示
1.0
2.0-1/2^24

对于正常数字,尾数总是以
1
开头,因此它实际上不会被存储。这是因为这些值是

sign * 2^exp * mantissa.
exp经过调整,尾数从
1开始。
也有一些次正常的数字不这样做,但这只适用于非常小的数字

如果您想了解浮动是如何表示的,可以查看

int i = Float.floatToRawIntBits(1.5);

i
将具有32位值,该值表示您需要仔细查看的
浮点值。双精度数据类型是双精度64位IEEE 754浮点。@Marichyasana抱歉。我在想浮点数,写了两遍。我已经更正了。没有小数点。这个过程有点复杂,但基本上二进制数是用科学记数法表示的,小数点后的部分用于尾数位,指数(需要移动多少位才能将其转换为
1.xxxx
形式)用指数位表示(这部分比较复杂,但你明白了)当然,符号存储在符号位中。所以,基本上,指数位告诉我们基数在哪里,但过程比你想象的要复杂。你需要仔细看看。双精度数据类型是双精度64位IEEE 754浮点。@Marichyasana抱歉。我想的是浮点,写的是双精度。我已经更正了。没有小数点。这个过程有点复杂,但基本上二进制数是用科学记数法表示的,小数点后的部分用于尾数位,指数(需要移动多少位才能将其转换为
1.xxxx
形式)用指数位表示(这部分比较复杂,但你明白了)当然,符号存储在符号位中。因此,基本上,指数位告诉我们基数在哪里,但过程比你想象的要复杂。从技术上讲,Java确实定义了
float
在Java中的工作方式。参见JLS。根据该部分,浮点类型“在概念上与”IEEE标准类型。从技术上讲,Java确实定义了
float
在Java中的工作方式。请参阅JLS。根据该部分,浮点类型与IEEE标准类型“概念上相关”。