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?

È stato utile?

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,

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top