![]() |
|
Модераторы: bsa |
![]()
|
|
| 0761 |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 14.7.2011 Репутация: нет Всего: нет |
Здравствуйте!
Вот пример:
, где UP/DOWN - верхняя и нижняя границы типа int. Берем за temp число 15. Следовательно здесь
получается 0. Что меня смутило: при невыполнении ни одного из условий, программа выполняет вот этот код:
Насколько я понимаю, дизъюнкция двух нулей дает ноль, следовательно мы должны были отправиться в ветку else. |
||||||
|
|||||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
||||
|
||||
| newbee |
|
|||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 3 Всего: 19 |
Скорее всего что-то с привидением типов во время сравнения. Нужно больше информации о том, что такое up & down.
-------------------- You're face to face With man who sold the world |
|||
|
||||
| Чoо |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 313 Регистрация: 22.9.2009 Репутация: 4 Всего: 4 |
с приведением типов там всё оК будет
-------------------- ![]() OS: Debian Squeeze (kernel 3.8.2) IDE: qtCreator 1.3.1; Eclipse SDK 3.5.2 |
|||
|
||||
| 0761 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 14.7.2011 Репутация: нет Всего: нет |
UP и DOWN у меня константы типа лонг дабл, равные границам типа инт
|
|||
|
||||
| Чoо |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 313 Регистрация: 22.9.2009 Репутация: 4 Всего: 4 |
-------------------- ![]() OS: Debian Squeeze (kernel 3.8.2) IDE: qtCreator 1.3.1; Eclipse SDK 3.5.2 |
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
||||
|
||||
| Чoо |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 313 Регистрация: 22.9.2009 Репутация: 4 Всего: 4 |
да, будет работать.. а поведение программы будет такое как у ТС, если перепутать значения в up и down с точностью наоборот
-------------------- ![]() OS: Debian Squeeze (kernel 3.8.2) IDE: qtCreator 1.3.1; Eclipse SDK 3.5.2 |
|||
|
||||
| 0761 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 14.7.2011 Репутация: нет Всего: нет |
ну вот, грубо говоря, отрывок |
|||
|
||||
| volatile |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
Ну наконец-то, после двух дней просьб!!!
Вот и Ошибка! 2147483648 = 80000000h; У вас DOWN и UP равны. нужно так: const long double UP = 2147483647; а еще лучше так:
|
||||
|
|||||
| 0761 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 14.7.2011 Репутация: нет Всего: нет |
volatile, о, спасибо большое) только я так и не понял, почему для константы типа лд значения границ типа инт равны
|
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
кратко : переполнение.. легче всего будет разобрать на char.. посмотрите чему равно 1000 0000b для signed и чему для unsigned char.. в помошь гугль: представление чисел в двоичной системе... Это сообщение отредактировал(а) mes - 5.9.2011, 16:41 |
|||
|
||||
| 0761 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 14.7.2011 Репутация: нет Всего: нет |
Продолжим?
Перевести в верхний регистр строку: так работает:
а должно так:
|
||||
|
|||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
||||
|
||||
| 0761 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 14.7.2011 Репутация: нет Всего: нет |
volatile, вопрос таков: "почему работает с дизъюнкцией, а должно работать с конъюнкцией". Или я что-то не понимаю.
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |