像这样的数字在 Java 中意味着什么:0b1000_1100_1010?(数字之间的“b”)

nri*_*ilk 3 java primitive-types

我正在练习 Java 课程的一些任务,但我遇到了这个变量

int x = 0b1000_1100_1010;
Run Code Online (Sandbox Code Playgroud)

我知道数字旁边的“f”和“d”分别表示该数字是float或double。但是数字之间的这个“b”呢?

我在这里看到这与bytes相关,但我不太明白它是如何工作的。

我的问题也适用于我刚刚在该链接上看到的数字之间的“x”。

谢谢!

Oli*_*ire 8

这是二进制文字。

这是一种表示数字以二进制表示的符号。

就像使用十六进制表示法一样:0xF9. 在 Java 中,可以使用0b1111_1001来表示相同的数字,即十进制的 249。

它与bytes无关,而与位有关。您可以清楚地看到哪些位已设置,哪些位未设置。默认情况下,0b以 an开头的数字是int,但您可以像这样写一个 long 0b1010L(注意结尾的L)。

该b可以大写或小写。因此,这也是正确的:0B1111。请注意,由于0b前缀表示二进制表示,因此不允许使用除0and以外的任何字符1(并_标记分隔符)。