¿Por qué usar valores hexadecimales en lugar de números normales de base 10?
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?
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,