2010-10-25 9 views
22

¿Hay alguna razón en particular por la cual este tipo de literal no está incluido mientras que los formatos hexadecimal y octal están permitidos?¿Por qué no hay literales binarios en Java?

+0

No está incluido en la mayoría de los idiomas, quizás la misma razón por la que no está incluido en Java. Pero me gustaría saber la razón general de todos modos. –

+0

Gracias chicos por las respuestas rápidas. En resumen, diría que no está incluido simplemente porque C no lo tiene y realmente porque agrega complejidad. Diablos, octal está incluido y no veo mucho uso en comparación con el binario, pero solo porque C lo tiene. Como podemos ver en esta propuesta http://mail.openjdk.java.net/pipermail/coin-dev/2009-March/000929.html, los literales binarios tienen muchas ventajas, especialmente en el dominio orientado a bits. –

Respuesta

26

Java 7 incluye it.Check la new features.

Ejemplo:

int binary = 0b1001_1001; 
+8

Aquí hay una referencia más reciente y más "oficial" - http://openjdk.java.net/projects/coin/ –

+1

Excelente enlace +1. Me llevó a este http://mail.openjdk.java.net/pipermail/coin-dev/2009-March/000929.html que resume todas mis razones por las que me gustaría ver un literal binario. –

+2

Existe el enlace más reciente: http://download.oracle.com/javase/7/docs/technotes/guides/language/binary-literals.html –

25

literales binarios se introducirán en Java 7. Ver "Improved Integer Literals":

int i = 0b1001001; 

La razón para no incluirlos desde el primer día es muy probable que los siguientes: Java es un lenguaje de alto nivel y ha sido muy restrictiva cuando se trata de construcciones de lenguaje que son menos importantes y de bajo nivel. Los desarrolladores de Java han tenido una política general de "en caso de duda, no la utilicen".

Si estás en Java 6 o más, su mejor opción es hacer

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

C es un lenguaje de nivel medio e históricamente ha sido bastante permisivo cuando se trata de construcciones de lenguaje de muy bajo nivel. Aún así, no hay literales binarios. –

+1

Sí, eso es extraño para la OMI. Sin embargo, ha estado presente en GCC durante bastante tiempo, tal como lo entiendo. – aioobe

+1

¿Cuántas personas encuentran que los literales octales son más útiles de lo que encontrarían los binarios? – supercat

1

El associated bug está abierto desde abril de 2004, tiene una baja prioridad y se considera como una solicitud de mejora por parte de Sun/Oracle .

Supongo que piensan literales binarios podrían hacer que el lenguaje más complejo y no proporciona beneficios obvios ...

0

No parece haber una impresión aquí que la aplicación de los literales binarios es compleja. No lo es Tardaría unos cinco minutos. Además de los casos de prueba, por supuesto.

Cuestiones relacionadas