Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Зеленый1
2 / 2 / 0
Регистрация: 21.04.2011
Сообщений: 100
#1

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

23.10.2011, 07:28. Просмотров 327. Ответов 2
Метки нет (Все метки)

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

Функция возвращаеющая число полученное инвертированием заданных разрядов - C++
Помогите написать прогу. Написать функцию, которая возвращает число, полученное из числа x, в котором n разрядов, начиная с позиции p,...

Проблемма с логическим оператором if - C++
Всем привет. Мне надо было написать такую програмку: если пользователь вводит символ 'y' (yes), то он задаёт данные в структуру, которые в...

Разьясните синтаксис с логическим отрицанием - C++
int main(int argc, char* argv) { bool done; do { char c; cin>>c; done=(c!='y'); } while(!done); ...

Не могу разобраться с логическим выражением в if - C++
Доброго всем дня, разбираюсь в чужом коде и застрял на этой вот строчке: if(!GetIsCurrentUserHas(OutdorAdminUnitID) && Value != 0) ...

Что то нето с логическим выражением - C++
Показывает какую то ошибку подскажите где ошибка? #include "stdafx.h" #include "math.h" int _tmain(int argc, _TCHAR* argv) { int...

Игры с логическим типом данных - C++
Доброго времени суток! Играюсь с логическим типом данных. Если присвоить логической переменной положительно число (дробное в том...

2
mimicria
return (true);
1958 / 1095 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
23.10.2011, 08:50 #2
а почему не
C++
1
2
a = !a;
a = !a;
1
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 бита
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.10.2011, 18:49
Привет! Вот еще темы с ответами:

Определить является ли массив логическим квадратом. - C++
Определить является ли массив логическим квадратом, то есть суммы по всем горизонталям, вертикалям и двум диагоналям должны быть равны и...

Определить является ли двумерный массив логическим квадратом - C++
Определить является ли двумерный массив логическим квадратом, то есть суммы по всем горизонталям, вертикалям и двум диагоналям должны быть...

Всегда ли после логического сложения можно однозначно определить исходные данные логическим умножением? - C++
Привет! Может вопрос и глупый, но всё же, терзают меня смутные сомнения по поводу потери данных в булевой алгебре. Смотрите, допустим: ...

Проблема с логическим диском - Windows 7
Здравствуйте! Помогите разобраться с операционкой! Начну с того, что у меня установлен Windows7. Винчестер WD 640 гБ был разделен...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.