在 Java 中,我可以定义一个二进制格式的整数常量吗?

新手上路,请多包涵

类似于如何以十六进制或八进制定义整数常量,我可以用二进制来定义吗?

原文由 Aaron Fi 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 641
2 个回答

因此,随着 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 上写的一篇关于该主题的小文章中提取了这些代码片段。请随时查看更多详细信息:

Java 7 和二进制表示法:掌握 OCP Java 程序员 (OCPJP) 考试

原文由 Cameron McKenzie 发布,翻译遵循 CC BY-SA 3.0 许可协议

在 Java 7 中:

 int i = 0b10101010;

旧版本的 Java 中没有二进制文字(请参阅其他答案以了解替代方案)。

原文由 Russ Hayward 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题