2016-06-11 4 views
-6

Я пришел acrros этой линии:Java - что означает 0xXXXc?

int b = (0x001c >> 1) 

И я не знаю, что этот маленький c рядом с 0x001 средствами. Я знаю, что 0x для гекс, но я никогда не видел этого c перед ..

Благодаря

+8

Вы уверены, что это не просто шестнадцатеричная цифра C? – Arc676

+0

Да, ты прав, моя ошибка. – Noam

ответ

0

В базе 10, есть десять цифр: 0, 1, 2, 3, 4, 5, 6 , 7, 8, 9

В основании 2, есть только два: 0, 1

В шестнадцатеричной (основание 16), есть 16: 0-9 и а, б, в, г, е & f. Иногда используется заглавная буква: оба они в порядке.

Так 0x001c означает 0x1 х 16 + 0xc х 1 = 16 + 12 = 28

0

Это здесь

int b = (0x001c >> 1) 

может быть проанализирован как:

  1. INT б объявляет переменную целого типа с именем Ь, это будет в то же самое значение инициализации ...
  2. 0x001c представляет собой число, но представлены в hexadecimal format
  3. >> является shift operator

так б инициализируется с результатом операции 0x001c >> 1 рано или поздно вы обнаружите, что эта операция является лишь деление на 2

подведением:

Эта линия создает целую переменную инициализирован со значением 14

1

C является шестнадцатеричный C, который равен 12 (в десятичной системе).

В вашем случае 0x001C смещен справа на 1.

Иными словами, 28 (в десятичной системе), сдвинутым на 1-е место вправо, будет 14 (в десятичной форме).

В двоичном,

0...00 00011100 >> 00000001

дает ..

0...00 00001110(in binary)

Что: 14 (в десятичной системе) или E (в шестнадцатеричном)

Смежные вопросы