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

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

Восстановить пароль Регистрация
 
vbloodv
 Аватар для vbloodv
22 / 22 / 0
Регистрация: 15.12.2012
Сообщений: 314
31.01.2013, 00:04     Использование битовых операторов для bool #1
Столкнулся с кодом где
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++
не работает bool xor(bool a, bool b) C++
задача на использование условных операторов C++
Использование операторов цикла C++
C++ Задача на использование операторов цикла
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11816 / 6795 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
31.01.2013, 00:35     Использование битовых операторов для bool #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.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
31.01.2013, 00:44     Использование битовых операторов для bool #3
vbloodv, в Си true могло быть отлично от единицы. Но в плюсах жестко прописано в стандарте, что false - это ноль, а true - это один.
По плюсам ответ - да, так можно и это безопасно.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11816 / 6795 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
31.01.2013, 00:48     Использование битовых операторов для bool #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.
Yandex
Объявления
31.01.2013, 00:48     Использование битовых операторов для bool
Ответ Создать тему
Опции темы

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