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

Кто объяснит почему true == false ? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Чтение/запись http://www.cyberforum.ru/cpp-beginners/thread258286.html
какая буква в fopen, открывает файл на одновременное чтение/запись, причем если файл существует, то не стирает его
C++ Опишите структуру с именем STUDENT Необходимо разработать программу, в которой выполняется ввод списка записей определенного типа, а затем - обработка списка. Сначала в программе должен вводиться размер списка (целое число), а сам список создается в виде динамического массива структур. Ввод одной записи осуществляется в одной строке. Описание структур приводится после вариантов задания. При выполнении заданий высокой сложности... http://www.cyberforum.ru/cpp-beginners/thread258279.html
C++ Комбинация условных выражений
Как короче, проще и правильнее записать следующую задачу. Если выполняется условие №1 проверять условие №2, в случае выполнения которого, проверять условие №3, в случае выполнения которого вывести результат функции. Плюс к тому, аргументом каждого условия служит новая переменная. При обычной проверке переменную уменьшают на 1 в теле функции. А как быть в такой ситуации. Где уменьшать все...
error C4430, error C2143 C++
error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию error C2143: синтаксическая ошибка: отсутствие "," перед "&" файл 1 #include <iostream> using namespace std; class string
C++ Ошибка в коде. Шаблоны http://www.cyberforum.ru/cpp-beginners/thread258245.html
Вот код: #include <iostream> #include <vector> #include <algorithm> #include <functional> template<class T> int Negative(const std::vector<std::vector<T> >& vc) {
C++ Ханойская башня Использование переборных методов (разработка программ решения задачи «Ханойская башня»). на С++ подробнее

Показать сообщение отдельно
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16845 / 5266 / 323
Регистрация: 30.03.2009
Сообщений: 14,173
Записей в блоге: 26
16.03.2011, 17:21     Кто объяснит почему true == false ?
alex_x_x, всё-таки конкретно в данном случае следовало бы объяснить тем, что char - знаковый. Если в char присвоить 0x9b, то старший (знаковый) бит равен единице, а потому величина будет отрицательная. Когда пишешь a*0x100+b, то имеем такой раскалад, что a и b - char'ы, а константа 0x100 имеет тип int (по стандарту константа без каких-либо модификаторов является int'ом). В результате чего a и b предварительно конвертируются в int (после чего действительно начинает играть роль то, что b - отрицательное).

Выражения "0x64*0x100+0x9B" и "a*0x100+b" НЕ эквивалентны. В нашем случае правильно было бы писать ( ((char)0x64) * 0x100 ) + ((char)0x9b) тогда ты получишь эквивалентное выражение
 
Текущее время: 16:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru