[英]Java floating-point numbers representation as a hexadecimal numbers
为什么0x1p3
等于8.0
? 为什么0x1e3
等于483
,而0x1e3d
等于7741
? 这是令人困惑的,因为1e3d
等于1000.0
。
0x1e3
和0x1e3d
是十六进制整数文字。 请注意, e
和d
是十六进制数字,在这种情况下不是指数指示符或double
型指示符。
1e3d
是十进制浮点文字。 e
是指数指标, d
表示这是double
而不是float
。
符号0x1p3
是一种以十六进制表示浮点文字的方法,您可以在 Java 语言规范的第 3.10.2 节中阅读。 1 乘以 2 的 3 次方; 指数是二进制的(因此,它是 2 次幂而不是 10 次幂)。
0x1e3 是 483 的十六进制,7741 的 0x1e3d 十六进制也是。 e
被读取为值为 14 的十六进制数字。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.