Беззнаковий правий зсув (>>>)

Оператор беззнакового правого зсуву (>>>) (правий зсув із заповненням нулями) виконує зсув першого операнду на вказану кількість бітів праворуч. Надлишкові біти, зсунуті праворуч, відкидаються. Біти, додані зліва, заповнюються нулями. Знаковий біт отримує значення 0, а отже, результат завжди невід'ємний. На відміну від інших бітових операторів, правий зсув із заповненням нулями повертає беззнакове ціле 32-бітне число.

Синтаксис

a >>> b

Опис

Цей оператор виконує зсув першого операнду на вказану кількість бітів праворуч. Надлишкові біти, зсунуті праворуч, відкидаються. Біти, додані зліва, заповнюються нулями. Знаковий біт отримує значення 0, а отже, результат завжди невід'ємний. На відміну від інших бітових операторів, правий зсув із заповненням нулями повертає беззнакове ціле 32-бітне число.

Для невід'ємних чисел, правий зсув із заповненням нулями та правий зсув з розширенням знаку дають однаковий результат. Наприклад, 9 >>> 2 дорівнює 2, так само, як 9 >> 2:

.     9 (основа 10): 00000000000000000000000000001001 (основа 2)
                   --------------------------------
9 >>> 2 (основа 10): 00000000000000000000000000000010 (основа 2) = 2 (основа 10)

Однак, це не одне й те саме для від'ємних чисел. Наприклад, -9 >>> 2 поверне 1073741821, що відрізняється від -9 >> 2 (що дорівнює -3):

.     -9 (основа 10): 11111111111111111111111111110111 (основа 2)
                    --------------------------------
-9 >>> 2 (основа 10): 00111111111111111111111111111101 (основа 2) = 1073741821 (основа 10)

Приклади

Використання беззнакового правого зсуву

 9 >>> 2; // 2
-9 >>> 2; // 1073741821

Специфікації

Сумісність з веб-переглядачами

BCD tables only load in the browser

Див. також