Выбор ответа Middle Биты обновлено

Сдвиг >>> и знак

Вопрос

Чем >>> отличается от >> в JS?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: заполняет нулями, сохраняет знак. -8 1 даёт -4 (арифметический сдвиг), а -8 1 даёт 2147483644 (логический).

Варианты ответа

  1. Ничем: это синоним >> для совместимости
  2. >>> сдвигает на 3 бита, а >> на 2 бита
  3. >>> заполняет нулями, >> сохраняет знакправильный ответ
  4. >>> работает только с BigInt, а >> с Number

Разбор

-8 >> 1 даёт -4 (арифметический сдвиг), а -8 >>> 1 даёт 2147483644 (логический). Трюк x >>> 0 превращает число в беззнаковое 32-битное, это удобно для вывода битов отрицательных чисел.

  • Разница существенна для отрицательных.
  • Число стрелок не задаёт величину сдвига.
  • С BigInt >>> как раз не работает: TypeError.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.