Понедельник, 23 Декабря 2024, 08:04

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Побитовое отрицание (~)
TeTaTeTДата: Среда, 27 Июля 2016, 19:40 | Сообщение # 1
частый гость
Сейчас нет на сайте
Объясните, пожалуйста, как работает побитовое отрицание.
Почему, например, из числа 2 получается -3? Как из 00000010 получилось 10000011?
falcowareДата: Среда, 27 Июля 2016, 19:53 | Сообщение # 2
старожил
Сейчас нет на сайте
PAULVIT, минус 3 это:
11111101

А теперь проинвертируй все биты и посмотри что получилось! =)
TeTaTeTДата: Среда, 27 Июля 2016, 20:01 | Сообщение # 3
частый гость
Сейчас нет на сайте
Цитата falcoware ()
PAULVIT, минус 3 это:
11111101

Так, а с чего бы это?
falcowareДата: Среда, 27 Июля 2016, 20:08 | Сообщение # 4
старожил
Сейчас нет на сайте
PAULVIT,

То есть 1111111111 = -1;
Теперь отнимем единицу:
Станет: 1111111110 = -2
Еще единицу отнимем:
Станет: 1111111101 = -3
Что не так?
TeTaTeTДата: Среда, 27 Июля 2016, 20:19 | Сообщение # 5
частый гость
Сейчас нет на сайте
Теперь понятно. Я думал, что представление отрицательных чисел бывает только одно (заменой левого бита на 1). Потом прочитал про дополнительный код. Спасибо за наводку.
YellowAfterlifeДата: Четверг, 28 Июля 2016, 14:03 | Сообщение # 6
Сейчас нет на сайте
Цитата PAULVIT ()
Теперь понятно. Я думал, что представление отрицательных чисел бывает только одно (заменой левого бита на 1)

Прямой и обратный код используются реже, поскольку в обоих случаях появляется нежеланный побочный эффект в виде -0, что не равен обычному 0.


  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг