• Предмет: Информатика
  • Автор: Valery2020vs2021
  • Вопрос задан 5 месяцев назад

Как работает побитовая операция ~?Я знаю что она заменяет 1 на 0,а 0 на 1,но почему при вводе 9 выводит -10(если 9 в двоичной 1001, соответственно противоположным будет 0110(110)а это 6)и откуда взялся -?

Ответы

Ответ дал: onetfriend
1

Ответ:

Объяснение:

Потому что ваша программа (или ваш компьютер) знает, что в числе 8 бит (1 байт) и ваше 9, внутри программы, на самом деле не 1001, а 00001001, соответственно после операции отрицания оно превращается в 11110110.

Кроме того, при использовании побитового отрицания знак результата всегда будет противоположен знаку исходного числа (при работе со знаковыми числами).

Это происходит потому, что число, после побитового отрицания становится записанным в дополнительном коде, где старший разряд указывает знак числа (0 это +, 1 это -)

С учетом этого, полученное число 11110110₂ = -10₁₀

PS Если вы используете режим программиста в калькуляторе, то он вам покажет реальное значение двоичного числа (на скриншоте).

Приложения:

Valery2020vs2021: Спасибо большое!
Вас заинтересует