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

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

Войти
Регистрация
Восстановить пароль
 
vbloodv
22 / 22 / 0
Регистрация: 15.12.2012
Сообщений: 314
#1

Использование битовых операторов для bool - C++

31.01.2013, 00:04. Просмотров 365. Ответов 3
Метки нет (Все метки)

Столкнулся с кодом где
C++
1
if (p.y > point2dMouse.y) ^ (prev.y > point2dMouse.y)
- допустим ли такой код, является ли он кросплатформенным и еще я слышал что в разных компиляторах разное значение bool.true и bool.false не обязательно 0(ну ноль обязательно) и 1 ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.01.2013, 00:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Использование битовых операторов для bool (C++):

Использование перегрузки операторов для комплексного числа - C++
Перезагрузить функции для разных типов входных данных, или создать шаблоны функций, или переопределить операции для указанных пользователем...

Использование функций-членов для перегрузки унарных операторов - C++
Добрый день уважаемые коллеги. Возник вопрос. как работают эти строки? three_d operator+(three_d op2);// оператор ор1 передается...

Использование битовых полей в AVR Studio - C++
Доброго времени суток форумчане! Недавно стал осваивать С++ для программирования микроконтроллеров. Столкнулся с такой проблемой для меня,...

не работает bool xor(bool a, bool b) - C++
Учусь по "Базовому курсу" Герберта Шилда #include <iostream> bool xor(bool a, bool d); int main() { bool p, q; cout...

Использование операторов цикла - C++
Вычислить значения функции y=4*x*x*x-2*x*x+5,для значений x , изменяющихся от -3 до 1 , с шагом 0.1 , Спасибо заранее . Помогите плз , я...

Использование операторов цикла - C++
Для х изменяющегося от a до b с шагом (b-a)/k, где (k=10), вычислить функцию f(x), используя ее разложение в степенной ряд в двух случаях: ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Croessmah
Модератор
Эксперт CЭксперт С++
13133 / 7396 / 828
Регистрация: 27.09.2012
Сообщений: 18,227
Записей в блоге: 3
Завершенные тесты: 1
31.01.2013, 00:35 #2
Вообще, true - это любое значение, отличное от нуля.
Цитата Сообщение от vbloodv Посмотреть сообщение
C++
1
if (p.y > point2dMouse.y) ^ (prev.y > point2dMouse.y)
У Вас побитовая операция, да еще и вне скобок.

Добавлено через 1 минуту
Цитата Сообщение от vbloodv Посмотреть сообщение
еще я слышал что в разных компиляторах разное значение bool.true и bool.false не обязательно 0(ну ноль обязательно) и 1 ?
ну лично мне не доводилось встречаться с ситуацией, когда bool(true) выдавал, например, 322
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
31.01.2013, 00:44 #3
vbloodv, в Си true могло быть отлично от единицы. Но в плюсах жестко прописано в стандарте, что false - это ноль, а true - это один.
По плюсам ответ - да, так можно и это безопасно.
Croessmah
Модератор
Эксперт CЭксперт С++
13133 / 7396 / 828
Регистрация: 27.09.2012
Сообщений: 18,227
Записей в блоге: 3
Завершенные тесты: 1
31.01.2013, 00:48 #4
Цитата из стандарта C++ 2003 года:
An rvalue of type bool can be converted to an rvalue of type int, with false becoming zero and true
becoming one.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.01.2013, 00:48
Привет! Вот еще темы с ответами:

Использование нескольких операторов в теле if - C++
Нужно определение и пример фрагмента (структура нескольких операторов в теле if) помогите

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

Использование операторов шаблона класса - C++
Приветствую, уважаемые форумчане. Я - начинающий программист, во время чтения книги Ст. Липмана "Язык программирования вводный курс" решил...

Задача на использование операторов цикла - C++
Написать программу на Turbo C++


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
31.01.2013, 00:48
Ответ Создать тему
Опции темы

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