在Java中,我可以定义二进制格式的整数常量吗?
类似于如何用十六进制或八进制定义整数常量,我可以在二进制中做到这一点吗?
类似于如何用十六进制或八进制定义整数常量,我可以在二进制中做到这一点吗?
在Java 7中:
int i = 0b10101010;
旧版本的 Java 中没有二进制文本(有关替代方法,请参阅其他答案)。
因此,随着Java SE 7的发布,二进制表示法成为开箱即用的标准。语法非常简单明了,如果你对二进制有一个很好的理解:
byte fourTimesThree = 0b1100;
byte data = 0b0000110011;
short number = 0b111111111111111;
int overflow = 0b10101010101010101010101010101011;
long bow = 0b101010101010101010101010101010111L;
特别是在将类级变量声明为二进制文件这一点上,使用二进制表示法初始化静态变量绝对没有问题:
public static final int thingy = 0b0101;
只要小心不要用太多数据溢出数字,否则你会得到一个编译器错误:
byte data = 0b1100110011; // Type mismatch: cannot convert from int to byte
现在,如果你真的想花哨,你可以将Java 7中另一个整洁的新功能(称为数字文字)与下划线相结合。看看这些带有文字下划线的二进制表示法的花哨例子:
int overflow = 0b1010_1010_1010_1010_1010_1010_1010_1011;
long bow = 0b1__01010101__01010101__01010101__01010111L;
现在不是很好,很干净,更不用说可读性很强了吗?
我从我在TheServerSide上写的一篇关于这个主题的小文章中提取了这些代码片段。请随时查看更多详细信息: