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

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

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

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

31.01.2013, 00:04. Просмотров 333. Ответов 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++
C++ Задача на использование операторов цикла
C++ Использование операторов шаблона класса
C++ Использование основных операторов языка С++
Использование условного оператора после операторов цикла с условием C++
C++ Использование условного оператора после операторов цикла с условием
C++ Использование перегрузки операторов для комплексного числа
Использование битовых полей в AVR Studio C++
Использование нескольких операторов в теле if C++
C++ Использование функций-членов для перегрузки унарных операторов

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12501 / 7063 / 793
Регистрация: 27.09.2012
Сообщений: 17,447
Записей в блоге: 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
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12501 / 7063 / 793
Регистрация: 27.09.2012
Сообщений: 17,447
Записей в блоге: 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
Ответ Создать тему
Опции темы

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