Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why are there no binary literals in Java?

Tags:

java

Is there any particular reason why this kind of literal is not included whereas hex and octal formats are allowed?

like image 892
Adrian M Avatar asked Oct 25 '10 09:10

Adrian M


4 Answers

Java 7 includes it.Check the new features.

Example:

int binary = 0b1001_1001;
like image 164
Emil Avatar answered Oct 03 '22 19:10

Emil


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);
like image 31
aioobe Avatar answered Oct 03 '22 21:10

aioobe


actually, it is. in java7.

http://code.joejag.com/2009/new-language-features-in-java-7/

like image 21
endarkened Avatar answered Oct 03 '22 19:10

endarkened


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...

like image 42
Frédéric Hamidi Avatar answered Oct 03 '22 19:10

Frédéric Hamidi