@Rabo

Как работает побитовая инверсия?

Я читал книгу Васильева "Программирование на javascript в примерах и задачах" (кстати, задач там нет) и наткнулся на
Определим код для числа –56. Бинарный код числа 56 равен 00111000. После побитового инвертирования получаем код 11000111. Прибавляем единицу и получаем 11001000. Это и есть искомый код для числа –56.

У меня (после раздумий, гуглежа, получения '-0b111000' в IDLE Pythonа и -111000 в онлайн-конвертерах) остаётся вопрос: почему 56 записывается не как 0111000, а как 00111000?
  • Вопрос задан
  • 2018 просмотров
Решения вопроса 1
@dimoff66
Кратко о себе: Я есть
Потому что принято записывать значения 8-битовыми порциями, просто соглашение
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@szanislo
(56).toString(2)
Ответ написан
Комментировать
@TSeim
Потому что в 8 битном представлении числа принято первый разряд(старший) - это знак числа как в 10 СС, только здесь 0 - "+", 1 - "-". Питон автоматически убирает незначащие нули, только если в операциях не было действий со сменой знака от стандартного положительного. Вот и показывает в 8битной разрядности.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы