为什么不包括这种字面值,而允许使用十六进制和八进制格式?是否有特定的原因?
为什么不包括这种字面值,而允许使用十六进制和八进制格式?是否有特定的原因?
Java 7引入了二进制字面量。请参见“改进的整数字面量”:
int i = 0b1001001;
一开始不包含它们的原因可能是:Java是一种高级语言,在涉及不太重要和低级别的语言结构时非常严格。Java开发者普遍遵循“如果有疑问,就排除”的策略。
如果你使用的是Java 6或更早版本,则最好的选择是执行:
int yourInteger = Integer.parseInt("100100101", 2);
相关的错误自2004年4月以来一直处于开放状态,优先级较低,并被Sun/Oracle视为增强请求。
我猜他们认为二进制字面量会使语言更加复杂,而且没有明显的好处...
Java 7 允许使用二进制字面量! 请查看以下内容: int binVal = 0b11010; 链接如下: http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
这里似乎有一种印象,即实现二进制字面量很复杂。其实不是这样的。只需要大约五分钟就可以完成。当然还要加上测试用例。