Задать вопрос
AlexSetup
@AlexSetup
Python

Почему две идентичные команды выдают разные результаты?

Есть две команды: (~0)<<k и 1<<k
Они выдают разные результаты. Почему?
  • Вопрос задан
  • 209 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Разработчик C++
    9 месяцев
    Далее
  • Нетология
    Специалист по информационной безопасности + нейросети
    12 месяцев
    Далее
  • Компьютерная академия «TOP»
    Учебная программа “Разработка программного обеспечения”
    30 месяцев
    Далее
Решения вопроса 1
@res2001
Developer, ex-admin
Для 1 байтового без знакового числа ~0 дает 11111111.
Делая (~0) << k вы обнуляете последние k бит числа. Далее битовое И с подобной маской дает обнуление последних k бит чилса, что и требовалось.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@abdujabbor1987
var_dump((~0) === 1); равняется false
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы