Форум программистов, компьютерный форум CyberForum.ru

Проблема с логическим инвертированием - C++

Восстановить пароль Регистрация
 
Зеленый1
 Аватар для Зеленый1
2 / 2 / 0
Регистрация: 21.04.2011
Сообщений: 100
23.10.2011, 07:28     Проблема с логическим инвертированием #1
Если например пишу такой код
C++
1
2
3
bool a = false;
a = ~a;
a = ~a;
то после выполнения данного кода значение переменной a равно true, хотя должно быть равно false. В чем может быть проблема?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2011, 07:28     Проблема с логическим инвертированием
Посмотрите здесь:

C++ Определить является ли массив логическим квадратом.
Проблемма с логическим оператором if C++
C++ Определить является ли двумерный массив логическим квадратом
C++ Игры с логическим типом данных
C++ Всегда ли после логического сложения можно однозначно определить исходные данные логическим умножением?
C++ Разьясните синтаксис с логическим отрицанием
Не могу разобраться с логическим выражением в if C++
Что то нето с логическим выражением C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
23.10.2011, 08:50     Проблема с логическим инвертированием #2
а почему не
C++
1
2
a = !a;
a = !a;
DeadRipper
64 / 70 / 3
Регистрация: 25.06.2009
Сообщений: 244
23.10.2011, 18:49     Проблема с логическим инвертированием #3
все равно странно почему не работает
bool a=0 это 00000000
после операции ~ получаем 11111111
и соответственно наоборот

Добавлено через 17 минут
сам написал сам разобрался)

bool a=0; 00000000
a=~a; (bool)11111111 = 00000001
a=~a; (bool)11111110 = 00000001

вот такой казус получается с логическими величинами
имеют размер 8 бит, но при этом всегда урезаются до 1 бита
Yandex
Объявления
23.10.2011, 18:49     Проблема с логическим инвертированием
Ответ Создать тему
Опции темы

Текущее время: 20:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru