Ядро JavaScript 1.5. Руководство по использованию

Побитовые Операции Сдвига


Побитовые операции сдвига принимают два операнда: первый операнд это сдвигаемое количество, а второй специфицирует количество битовых позиций, на которое сдвигается первый операнд. Направление сдвига контролируется применяемой операцией.

Операции сдвига конвертируют свои операнды в 32-битные целые и возвращают результат того же типа, что и у левого операнда.

Операции сдвига перечислены в таблице.

Таблица 3.5  Побитовые Операции Сдвига


ОперацияОписание

Пример

<<
(Сдвиг влево)

Эта операция сдвигает первый операнд на специфицированное количество битов влево. Излишние биты, смещённые влево, отбрасываются. Справа биты заполняются нулями.

9<<2 даёт 36, поскольку 1001, смещённое на 2 бита влево, становится 100100, то есть 36.

>>
(Сдвиг вправо с сохранением знака)

Первый операнд сдвигается на специфицированное количество битов вправо. Излишние биты, смещённые вправо, отбрасываются. Копии самого левого бита вдвигаются слева.

9>>2 даёт 2, поскольку 1001, смещённое на 2 бита вправо, становится 10, то есть 2. Аналогично, -9>>2 даёт -3, поскольку знак сохраняется.

>>>
(Сдвиг вправо с заполнением нулями)

Первый операнд сдвигается на специфицированное количество битов вправо. Излишние биты, смещённые вправо, отбрасываются. Слева биты заполняются нулями.

19>>>2 даёт 4, поскольку 10011, смещённое на 2 бита вправо, становится 100, то есть 4. Для неотрицательных чисел, сдвиг вправо с заполнением нулями даёт тот же эффект, что и сдвиг вправо с сохранением знака.





Содержание раздела