gpt4 book ai didi

Java >>>= 运算符

转载 作者:行者123 更新时间:2023-12-02 05:36:50 25 4
gpt4 key购买 nike

我想知道,>>>= 运算符可以应用于什么?

适用于以下情况:
int >>>= int
长>>>=长
long >>>= int
长 >>>= 短
短>>>=长
短>>>=短
int >>>= byte

但不适用于任何东西,包括 floatdouble

为什么会这样,我怎样才能使它适用于 floatdouble

谢谢!

最佳答案

考虑到位代表什么,在 float 或 double 中移动位没有多大意义。

Bit 63 (the bit that is selected by the mask 0x8000000000000000L) represents the sign of the floating-point number. Bits 62-52 (the bits that are selected by the mask 0x7ff0000000000000L) represent the exponent. Bits 51-0 (the bits that are selected by the mask 0x000fffffffffffffL) represent the significand (sometimes called the mantissa) of the floating-point number.

如果您对 double 进行右移,则符号位将被解释为指数,并且指数的一部分将溢出到尾数。移位操作的语义将毫无意义。

如果你真的想移动位,你可以通过 Double.doubleToLongBitsDouble.longBitsToDouble 如下:

// Unsigned shift right 3 of a double
Double.longBitsToDouble(Double.doubleToLongBits(d) >>> 3)

关于Java >>>= 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27217536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com