2010-10-25 43 views
22

是否有任何特定的原因,爲什麼不包含這種文字,而允許使用十六進制和八進制格式?爲什麼Java中沒有二進制文字?

+0

它不包括在大多數語言中,也許它沒有被包含在Java中的相同原因。但我想知道一般的原因。 – 2010-10-25 09:55:26

+0

謝謝你們的快速回復。總之,我會說這不包含,因爲C沒有它,並不是真的,因爲它增加了複雜性。哎呀,八進制是包括在內,我沒有看到它與二進制相比有很多用處,但只是因爲C有它。正如我們從http://mail.openjdk.java.net/pipermail/coin-dev/2009-March/000929.html這個提議中可以看到的,二進制文字有很多優勢,特別是在面向位的領域。 – 2010-10-25 10:36:05

回答

26

Java 7中包括it.Check的new features

實施例:

int binary = 0b1001_1001; 
+8

這裏有一個更新的和更「官方」的參考 - http://openjdk.java.net/projects/coin/ – 2010-10-25 10:06:26

+1

偉大的鏈接+1。它引導我到這個http://mail.openjdk.java.net/pipermail/coin-dev/2009-March/000929.html,總結了我爲什麼要看到二進制文字的所有原因。 – 2010-10-25 10:25:47

+2

還有最近的鏈接:http://download.oracle.com/javase/7/docs/technotes/guides/language/binary-literals.html – 2011-11-11 12:57:35

25

二進制文字用Java 7中引入見"Improved Integer Literals"

int i = 0b1001001; 

其原因不包括他們一天一個最有可能是以下幾點:Java是一種高層次的語言,已經相當嚴格,當它涉及到不那麼重要和低層次的語言結構。 Java開發人員有一個「如果有疑問,保持不變」的總體策略。

如果你在Java 6或以上,你最好的選擇是做

int yourInteger = Integer.parseInt("100100101", 2); 
+4

C是中級語言,歷史上對於非常低級的語言結構一直相當寬容。不過,沒有二進制文字。 – 2010-10-25 13:04:50

+1

是的,這是IMO陌生人。據我瞭解,它在GCC中已經有一段時間了。 – aioobe 2010-10-25 13:06:50

+1

有多少人發現八進制文字比找到二進制文字更有用? – supercat 2014-01-14 20:48:14

1

associated bug是開放的自2004年4月,具有低優先級,被認爲是用於增強由Sun /甲骨文的請求。

我猜他們想二進制文字會使語言更復雜,並且不提供明顯的好處...

0

似乎有在這裏是一種印象,即實現二進制文字是複雜的。事實並非如此。這將需要大約五分鐘。當然還有測試用例。

相關問題