Perché usare valori esadecimali invece dei normali numeri di base 10?
Domanda
Stavo guardando questo codice per calcolare math.sqrt
in Java. Perché hanno usato valori esadecimali in alcuni dei loop e valori normali per le variabili? Quali vantaggi ci sono per usare hex?
Soluzione
Perché hex corrisponde molto più da vicino ai bit che ai numeri decimali. Ogni cifra esadecimale corrisponde a 4 bit (un bocconcino). Quindi, una volta che hai imparato la maschera di bit associata a ciascuna cifra esadecimale (0-F), puoi fare qualcosa come " Voglio una maschera per il byte di ordine basso " ;:
0xff
o, " Voglio una maschera per i 31 bit in basso " ;:
0x7fffffff
Solo per riferimento:
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
Altri suggerimenti
Probabilmente hanno usato valori esadecimali perché i numeri sono più facili da ricordare in esadecimali. Ad esempio, 0x7fffffff è uguale a 2147483647, ma è molto più facile da ricordare.
Hex è una forma leggibile dall'uomo del binario effettivamente utilizzato dalla CPU. Quando si osservano comandi di basso livello, spesso ha più senso abbinare la CPU e pensare in esadecimale,