Как работает побитовая операция ~?Я знаю что она заменяет 1 на 0,а 0 на 1,но почему при вводе 9 выводит -10(если 9 в двоичной 1001, соответственно противоположным будет 0110(110)а это 6)и откуда взялся -?
Ответы
Ответ дал:
1
Ответ:
Объяснение:
Потому что ваша программа (или ваш компьютер) знает, что в числе 8 бит (1 байт) и ваше 9, внутри программы, на самом деле не 1001, а 00001001, соответственно после операции отрицания оно превращается в 11110110.
Кроме того, при использовании побитового отрицания знак результата всегда будет противоположен знаку исходного числа (при работе со знаковыми числами).
Это происходит потому, что число, после побитового отрицания становится записанным в дополнительном коде, где старший разряд указывает знак числа (0 это +, 1 это -)
С учетом этого, полученное число 11110110₂ = -10₁₀
PS Если вы используете режим программиста в калькуляторе, то он вам покажет реальное значение двоичного числа (на скриншоте).
Приложения:
![](https://st.uroker.com/files/ccc/ccc2dd0e2eb1aafc386a3d3eac689d5a.png)
Valery2020vs2021:
Спасибо большое!
Вас заинтересует
3 месяца назад
4 месяца назад
4 месяца назад
1 год назад
1 год назад