tipos tipo significa reservadas que primitivos palabras float ejemplos datos dato java numbers int

significa - tipos de variables en java ejemplos



¿Por qué 08 no es un literal entero válido en Java? (6)

¿Por qué 08 considera fuera de rango int pero 07 y abajo no?


Cualquier número con un prefijo 0 se considera octal. Los números octales solo pueden usar los dígitos 0-7, al igual que los decimales pueden usar 0-9, y los binarios pueden usar 0-1.

// octal to decimal 01 // 1 02 // 2 07 // 7 010 // 8 020 // 16 // octal to binary (excluding most significant bit) 01 // 1 02 // 10 07 // 111 010 // 1000 020 // 10000

Hay 10 tipos de personas, los que entienden ternarios, los que no, y los que piensan que esto es una broma estúpida.


De la especificación de Java :

Un número octal consiste en un dígito ASCII 0 seguido de uno o más de los dígitos ASCII 0 a 7 y puede representar un entero positivo, cero o negativo.


El cero inicial significa que el valor está en octal. 8 no es un dígito octal, no más de 2 es válido en binario o G es válido en hexadecimal.


En Java , si está definiendo un int con un ''0'' inicial denota que está definiendo un número en Octal .

int a = 08 está dando error de rango porque no hay ningún número ''8'' en Octal . Octal proporciona solo 0-7 números.

Si define a = 07, entonces no está dando el error fuera de rango porque los números ''0'' y ''7'' están dentro del rango de Octal.


En Java y en varios otros lenguajes, un literal entero que comienza con 0 se interpreta como una cantidad octal (base 8).

Para números de un solo dígito (que no sean 08 y 09 , que no están permitidos), el resultado es el mismo, por lo que es posible que no note que se están interpretando como octal. Sin embargo, si escribe números con más de un dígito significativo, puede confundirse con el resultado.

Por ejemplo:

010 == 8 024 == 20

Dado que los literales octales generalmente no son lo que usted desea, siempre debe tener cuidado de no comenzar nunca un literal entero con 0 , a menos que, por supuesto, en realidad esté intentando escribir cero por sí mismo.


En la mayoría de los lenguajes de programación como Java y C/C++ , el número con cero inicial se interpreta como número octal . Como sabemos, los números octales solo están representados dentro de 0 a 7 dígitos solamente. Por lo tanto, los números como 05 , 03 , 054 son válidos, pero los números como 078 , 0348 , 09 , 08 tienden a ser inválidos.