2010-10-25 10 views
22

Gibt es einen bestimmten Grund, warum diese Art von Literal nicht enthalten ist, während Hex- und Octal-Formate erlaubt sind?Warum gibt es in Java keine Binärliterale?

+0

Es ist nicht in den meisten Sprachen enthalten, vielleicht der gleiche Grund dafür, dass es nicht in Java enthalten ist. Aber ich würde den allgemeinen Grund trotzdem gerne wissen. –

+0

Danke Jungs für die schnellen Antworten. Zusammenfassend würde ich sagen, dass es nicht einfach enthalten ist, weil C es nicht hat und nicht wirklich, weil es Komplexität hinzufügt. Heck, Oktal ist enthalten und ich sehe es nicht viel zu benutzen im Vergleich zu Binär, sondern nur weil C es hat. Wie wir aus diesem Vorschlag http://mail.openjdk.java.net/pipermail/coin-dev/2009-March/000929.html sehen können, hat binäre Literale viele Vorteile, besonders in der bitorientierten Domäne. –

Antwort

26

Java 7 enthält it.Check die new features.

Beispiel:

int binary = 0b1001_1001; 
+8

Hier ist eine neuere und mehr "offizielle" Referenz - http://openjdk.java.net/projects/coin/ –

+1

Great link +1. Es führt mich zu dieser http://mail.openjdk.java.net/pipermail/coin-dev/2009-March/000929.html, die alle meine Gründe zusammenfasst, warum ich ein binäres Literal sehen möchte. –

+2

Es gibt den neueren Link: http://download.oracle.com/javase/7/docs/technotes/guides/language/binary-literals.html –

25

Binary Literale wurden in Java 7 eingeführt Siehe "Improved Integer Literals":

int i = 0b1001001; 

Der Grund für sie, ohne sich von Tag wahrscheinlich die folgende ist: Java ist ein High-Level-Sprache und ist ziemlich restriktiv, wenn es kommt zu Sprachkonstrukten, die weniger wichtig und wenig ausgeprägt sind. Java-Entwickler haben eine allgemeine Richtlinie "im Zweifelsfall, halten Sie es aus".

Wenn Sie auf Java sind 6 oder mehr Jahren, die beste Wahl

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

C ist Mid-Level-Sprache und war historisch ziemlich permissiv, wenn es um Sprachkonstrukte geht, die sehr niedrig sind. Immer noch keine binären Literale. –

+1

Ja, das ist IMO Fremder. Es ist seit einiger Zeit in GCC präsent, so wie ich es verstehe. – aioobe

+1

Wie viele Menschen finden Oktal Literale nützlicher als sie binäre finden würden? – supercat

1

Die associated bug ist im April 2004 eröffnet, zu tun ist, hat eine niedrige Priorität und wird als Antrag auf Erweiterung von Sun/Oracle betrachtet .

Ich denke, sie denken, binäre Literale würde die Sprache komplexer machen und bietet keine offensichtlichen Vorteile ...

0

Es scheint hier einen Eindruck davon zu sein, dass die Umsetzung binäre Literale komplex ist. Es ist nicht. Es würde ungefähr fünf Minuten dauern. Und natürlich die Testfälle.

Verwandte Themen