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

Биты в JS 32-битные

Вопрос

Что выведет код?

console.log((2 ** 32) | 0);

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

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

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

Коротко

Правильный ответ: 0. Побитовые операторы в JS приводят число к 32-битному целому со знаком.

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

  1. 0правильный ответ
  2. 4294967296
  3. 1
  4. -2147483648

Разбор

Побитовые операторы в JS приводят число к 32-битному целому со знаком. 2³² в 32 битах это 0, и 0 | 0 даёт 0. Для больших чисел нужен BigInt.

  • 4294967296 это исходное значение без приведения.
  • 1 и -2147483648 получаются при других значениях (например, 2 ** 31 | 0 даёт -2147483648).

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

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