我正在尝试创建一个掩码来查看 Java 中 long 的特定位。我尝试了以下方法:
long mask = ~ (0xffffffff << 32);
如果我在控制台上打印它,它将返回 0,但我期待 4294967295,因为我的结果应该看起来像 0x00000000FFFFFFFFL 并且 2^32 - 1 等于 4294967295。当我移动一个长掩码时它可以工作,但我不明白为什么。
long mask = ~ (0xFFFFFFFFFFFFFFFFL << 32);
谁能解释我这种行为?