Pregunta

Estaba mirando este código para calcular math.sqrt en Java. ¿Por qué usaron valores hexadecimales en algunos de los bucles y valores normales para las variables? ¿Qué beneficios hay para usar hexadecimal?

¿Fue útil?

Solución

Porque el hexadecimal corresponde mucho más a los bits que los números decimales. Cada dígito hexadecimal corresponde a 4 bits (un mordisco). Entonces, una vez que haya aprendido la máscara de bits asociada con cada dígito hexadecimal (0-F), puede hacer algo como "Quiero una máscara para el byte de orden inferior":

0xff

o, " Quiero una máscara para los 31 bits inferiores " ;:

0x7fffffff

Solo para referencia:

HEX    BIN
0   -> 0000
1   -> 0001
2   -> 0010
3   -> 0011
4   -> 0100
5   -> 0101
6   -> 0110
7   -> 0111
8   -> 1000
9   -> 1001
A   -> 1010
B   -> 1011
C   -> 1100
D   -> 1101
E   -> 1110
F   -> 1111

Otros consejos

Probablemente usaron valores hexadecimales porque los números son más fáciles de recordar en hexadecimal. Por ejemplo, 0x7fffffff es lo mismo que 2147483647, pero es mucho más fácil de recordar.

Hex es una forma humana legible del binario que la CPU realmente usa. Al mirar los comandos de bajo nivel, a menudo tiene más sentido hacer coincidir la CPU y pensar en hexadecimal,

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top