Зачем использовать шестнадцатеричные значения вместо обычных десятичных чисел? - PullRequest
5 голосов
/ 16 января 2009

Я просматривал этот код , чтобы вычислить math.sqrt в Java. Почему они использовали шестнадцатеричные значения в некоторых циклах и нормальные значения для переменных? Какие преимущества есть у гекса?

Ответы [ 3 ]

28 голосов
/ 16 января 2009

Потому что шестнадцатеричный код намного ближе соответствует битам, чем десятичные числа. Каждая шестнадцатеричная цифра соответствует 4 битам (клев). Итак, как только вы изучите битовую маску, связанную с каждой шестнадцатеричной цифрой (0-F), вы можете сделать что-то вроде «Я хочу маску для младшего байта»:

0xff

или «Я хочу маску для нижних 31 бита»:

0x7fffffff

Только для справки:

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
3 голосов
/ 16 января 2009

Они, вероятно, использовали шестнадцатеричные значения, потому что числа легче запомнить в шестнадцатеричном виде. Например, 0x7fffffff - это то же самое, что и 2147483647, но намного легче запомнить.

2 голосов
/ 16 января 2009

Hex - это читаемая человеком форма двоичного файла, который фактически использует процессор. При просмотре команд низкого уровня часто имеет смысл сопоставлять процессор и думать в шестнадцатеричном виде,

...