¿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?
Respuesta
Aquí hay una referencia más reciente y más "oficial" - http://openjdk.java.net/projects/coin/ –
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. –
Existe el enlace más reciente: http://download.oracle.com/javase/7/docs/technotes/guides/language/binary-literals.html –
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);
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. –
Sí, eso es extraño para la OMI. Sin embargo, ha estado presente en GCC durante bastante tiempo, tal como lo entiendo. – aioobe
¿Cuántas personas encuentran que los literales octales son más útiles de lo que encontrarían los binarios? – supercat
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 ...
en realidad, lo es. en java7.
http://code.joejag.com/2009/new-language-features-in-java-7/
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.
¡Java 7 no permite literales binarios! Compruebe esto: int binVal = 0b11010; en este enlace: http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
- 1. ¿Por qué no hay byte o literales cortos en Java?
- 2. por qué no hay sizeof en java
- 3. Cómo escribir literales binarios en Scala?
- 4. ¿Por qué deberíamos usar literales en C#?
- 5. ¿Por qué MATLAB no puede leer correctamente en archivos binarios?
- 6. ¿Por qué no hay interfaces finales en Java?
- 7. ¿Por qué no hay una variable estática local en Java?
- 8. ¿Por qué no hay interfaz Hashable en Java
- 9. ¿Por qué no hay límite (float) en Java?
- 10. ¿Por qué Java no tiene una forma de especificar los literales de cadenas sin espaciar?
- 11. ¿Por qué Perl no compila en archivos binarios como python?
- 12. Por qué algunos tipos no tienen modificadores literales
- 13. Colecciones de Java. ¿Por qué no hay tipos primitivos?
- 14. ¿Por qué ya no hay binarios de Windows para extensiones PECL como pecl_http?
- 15. ¿Por qué no hay Dictionary.TrimExcess()?
- 16. ¿Por qué se permite la precisión arbitraria en literales dobles en Java?
- 17. ¿Por qué no hay strtoi en stdlib.h?
- 18. ¿Por qué no hay isFocused() en GWT?
- 19. ¿Por qué no hay ReverseEnumerator en C#?
- 20. ¿Por qué son importantes los árboles binarios?
- 21. ¿Por qué no hay tipos de punto flotante sin signo?
- 22. JAVA: árboles binarios
- 23. ¿Hay marcos Java para el análisis de archivos binarios?
- 24. En Haskell puedo hacer literales numéricos no polimórficos por defecto?
- 25. ¿Por qué Java tiene una "NullPointerException" cuando no hay punteros en Java?
- 26. ¿Por qué no hay colecciones concurrentes en C#?
- 27. ¿Por qué hay clases de contenedor en Java?
- 28. ¿Por qué las cadenas no literales no pueden contener líneas nuevas?
- 29. ¿Por qué no hay palabra clave "no es" en C#?
- 30. ¿Por qué no hay UTF-24?
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. –
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. –