operator logical integers ejemplo java integer operators equality-operator

logical - java operators



¿Por qué no está(123== 0123) en java? (3)

Estoy desarrollando una aplicación en Android usando Eclipse. Escribí el siguiente código y en las pruebas, el primer y tercer bloque " if " no están disponibles. ¿Por qué?

Cuando agrego un cero inicial a un número, el operador igual devuelve falso.

int var = 123; if (var == 0123) { //not reachable } if (var == 123) { //reachable } if (var == (int)0123) { //not reachable } if (var == (int)123) { //reachable }


Cualquier número entero que empiece con cero es un número octal (base 8).

0123 es el número octal y 123 es el número decimal

0123 = (3*8^0) +(2*8^1)+(1*8^2)+(0*8^4) =3+16+64+0 =83


porque 0123 en dígito no decimal es octal (base 8), por lo que es igual a 83

Para convertir un número k a decimal, use la fórmula que define su representación en base 8:

0123 base-8 = 83 decimal 0123 = (3*8^0) +(2*8^1)+(1*8^2)+(0*8^4) =3+16+64+0 =83

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.

Nota: Los valores octales se indican en java con cero inicial. El número decimal normal no puede tener un cero inicial.


0123 es un número octal ( 0 ), mientras que 123 es un número decimal.

por lo que 0123 en realidad es igual a 83.