Reputation: 7435
Is there any particular reason why this kind of literal is not included whereas hex and octal formats are allowed?
Upvotes: 22
Views: 10881
Reputation: 420991
Binary literals were introduced in Java 7. See "Improved Integer Literals":
int i = 0b1001001;
The reason for not including them from day one is most likely the following: Java is a high-level language and has been quite restrictive when it comes to language constructs that are less important and low level. Java developers have had a general policy of "if in doubt, keep it out".
If you're on Java 6 or older, your best option is to do
int yourInteger = Integer.parseInt("100100101", 2);
Upvotes: 24
Reputation: 29
Java 7 does allow binary literals ! Check this: int binVal = 0b11010; at this link: http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
Upvotes: 0
Reputation: 310903
There seems to be an impression here that implementing binary literals is complex. It isn't. It would take about five minutes. Plus the test cases of course.
Upvotes: 0
Reputation: 41
actually, it is. in java7.
http://code.joejag.com/2009/new-language-features-in-java-7/
Upvotes: 2
Reputation: 13789
Java 7 includes it.Check the new features.
Example:
int binary = 0b1001_1001;
Upvotes: 26
Reputation: 262939
The associated bug is open since April 2004, has low priority and is considered as a request for enhancement by Sun/Oracle.
I guess they think binary literals would make the language more complex and doesn't provide obvious benefits...
Upvotes: 1