¿Por qué 0x1p3
es igual a ? ¿Por qué 0x1e3
es igual a 483
, mientras que 0x1e3d
es igual a 7741
? Es confuso ya que 1e3d
es igual a 1000.0
.Representación de los números flotantes de Java como números hexadecimales
Respuesta
0x1e3
y 0x1e3d
son hexadecimal número entero literales. Tenga en cuenta que e
y d
son dígitos hexadecimales, no el indicador de exponente o el indicador de tipo double
en este caso.
1e3d
es un decimal punto flotante literal. El e
es el indicador del exponente, el d
dice que esto es un double
en lugar de un float
.
La notación 0x1p3
es una manera de expresar un literal de coma flotante en hexadecimal, como se puede leer en section 3.10.2 de la especificación del lenguaje Java. Significa 1 por 2 a la potencia 3; el exponente es binario (por lo tanto, es 2-a-la-potencia en lugar de 10-a-la-potencia).
0x1e3 es hexadecimal para 483, como es hex 0x1e3d para 7741. está siendo leído El e
como un dígito hex con valor 14.
Ah, 0x1e3 es un número hexadecimal, por lo que "e" no significa un exponente aquí. – serious
Pero 0x1p3 aún no está claro. – serious
@serious, la diferencia es que 0x1e3 es un número entero, no un número de coma flotante. La 'e' en ese entero es solo una desafortunada coincidencia que confunde. 0x1p3 es un número de punto flotante. Se interpreta _muy_ de manera diferente. La interpretación incluye un _mantissa_ y un _exponent_. La primera es la parte 1.0 (tenga en cuenta el punto decimal supuesto). La última es la parte 'p3' que dice 'a la tercera potencia'. Dado que estamos en modo binario, llevar un número a la tercera potencia es lo mismo que moverlo 3 bits hacia la izquierda, por lo que 0b1 se convierte en 0b1000. Eso es 8 en decimal. –
- 1. Números flotantes en Java
- 2. String.format() y números hexadecimales en Java
- 3. ¿Cómo pronuncias números hexadecimales grandes?
- 4. Mostrar números hexadecimales de un archivo
- 5. Imprimir una matriz de enteros como números hexadecimales
- 6. Bits representación de números negativos
- 7. ¿Sujeta números flotantes en Python?
- 8. Números flotantes de precisión arbitrarios en JavaScript
- 9. Conversión de números hexadecimales en cadenas a números negativos, en Perl
- 10. Cómo imprimir números hexadecimales en PHP o Java
- 11. Trabajando con números hexadecimales en MySQL
- 12. ¿Cómo se muestran los números hexadecimales en C?
- 13. ¿Por qué los números hexadecimales tienen el prefijo 0x?
- 14. Representación de números enteros en dobles
- 15. Error de redondeo de Python con números flotantes
- 16. JavaScript expresiones regulares - coincide con una serie de números hexadecimales
- 17. Conversión de números octales y hexadecimales a la base 10
- 18. Genéricos y números de Java
- 19. Números grandes que requieren representación de más de 64 bits
- 20. bit a bit XOR de números hexadecimales en python
- 21. boost spirit qi análisis numérico de números enteros y flotantes
- 22. La ordenación de Linux no funciona con números flotantes negativos
- 23. Números flotantes de Python "float" y PostgreSQL "double precision"
- 24. Cómo escribir números formateados como números en JExcel (jxl)
- 25. Convierte números enteros a los números escritos
- 26. ¿Cómo puedo convertir números hexadecimales a binarios en C++?
- 27. impresión de bits de representación de números en python
- 28. almacenando números como varchar
- 29. números aleatorios en Java
- 30. tienda los mayores 5000 números de una serie de números
¿Por qué el 'p' en' 0x1p3'? – marcog
@marcog esto es parte de una forma de expresar números en coma flotante, consulte el JLS: http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.10.2 – Jesper
@marcog: ese es el marcador de exponente para un literal de punto flotante hexadecimal, como se define en los estándares Java y C99. –