Adrian M
Adrian M

Reputation: 7435

Why are there no binary literals in Java?

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

Upvotes: 22

Views: 10881

Answers (6)

aioobe
aioobe

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

user1639637
user1639637

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

user207421
user207421

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

endarkened
endarkened

Reputation: 41

actually, it is. in java7.

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

Upvotes: 2

Emil
Emil

Reputation: 13789

Java 7 includes it.Check the new features.

Example:

int binary = 0b1001_1001;

Upvotes: 26

Frédéric Hamidi
Frédéric Hamidi

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

Related Questions