Говоря о побитовых операторах, что означает символ «0xf00f»? - PullRequest
3 голосов
/ 12 марта 2012

Скопировано справочное руководство по Java:

Например, результат выражения: 0xff00 & 0xf0f0 является: 0xf000

Результат выражения: 0xff00 ^ 0xf0f0 является: 0x0ff0

Результат выражения: 0xff00 | 0xf0f0 является: 0xfff0

Что означают эти буквы и цифры вместе взятые?

1 Ответ

10 голосов
/ 12 марта 2012

Числа, начинающиеся с 0x, находятся в шестнадцатеричном (основание 16) обозначении .Они используют цифры 0-9 для шестнадцатеричных цифр 0-9 и буквы A-F для шестнадцатеричных цифр от 10 до 15.

Шестнадцатеричное представление удобнее, чем десятичное, для отображения битовых операций, поскольку основание16 - 2^4, поэтому цифра соответствует четырем битам;результаты побитовых операций ограничиваются одной цифрой;они не «кровоточат» в соседние цифры.

Таблица преобразования двоичного числа в шестнадцатеричное выглядит следующим образом:

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

Вы можете преобразовать шестнадцатеричное число в двоичное путем прямой замены цифр, используя этуТаблица.Например, 0xF0F0 становится 1111000011110000 в двоичном формате.

С этими правилами подстановки вы можете следовать тексту из документации в двоичном виде:

0xff00 & 0xf0f0 is: 0xf000

становится

  1111 1111 0000 0000
& 1111 0000 1111 0000
---------------------
  1111 0000 0000 0000

В двоичном коде имеет смысл: результат побитового & равен 1 только тогда, когда оба операнда имеют 1 всоответствующий бит;в противном случае результат будет 0.

Вы также сможете выполнять оставшиеся операции ^ и | с большей готовностью.

...