Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
почему true ?
Отправлено
DASM
(89.163.14.219)
11 февраля 2010, г. 13:47
В ответ на:
(out>>127) - всегда возвращает значение true. Объявите "unsigned char out;" тогда (out>127) будет работать правильно
отправлено misyachniy 11 февраля 2010, г. 13:33
Составить ответ
|
Вернуться на конференцию
Ответы
Потому что ничего не мешает сдвинуть число на 127 разрядов вправо. так ( (out>127)) всегда будет false. если число не 128 или 256 разрядное ;-)
-
misyachniy
(11.02.2010, 13:52:2
194.187.111.110
,
пустое
)
гонишь ты. Это число просто станет нулем, то бишь false
-
DASM
(11.02.2010, 13:54:5
89.163.14.219
,
пустое
)
Недетерменировано. На одних машинах знаковое число двигается >> логически (0 залезает), а на других - арифметически (знак распространяется, например ИАР). См. по сцылке п2.9
-
VasilyS
(11.02.2010, 16:05:38
80.92.96.25
,
пустое
,
ссылка
)
Не "машинах" а "компиляторах" конечно...
-
VasilyS
(11.02.2010, 16:06:31
80.92.96.25
,
пустое
)
Ответ: Возможно это сработало+++
-
dshabrov
(11.02.2010, 14:10:7
84.21.231.242
, 347 байт)
потому что более 128 в случае переменной типа signed - это отрицательное число. Ну а дальше сам читай литературу, что будет со знаковыми отриц числами при сдвиге. И вообще, что это за бред - зачем на 127 бит СДВИГАТЬ число ?
-
DASM
(11.02.2010, 14:34:26
89.163.14.219
,
пустое
)
Ответ: Да блин, по незнанию это все. Конечно я сделал IF >. Просто удивило, что и в этом случае работало правильно. Такое редко бывает.
-
dshabrov
(11.02.2010, 14:48:22
84.21.231.242
,
пустое
)
Наверное по следующему соображению(+)
-
misyachniy
(11.02.2010, 17:37:22
194.187.111.110
, 699 байт)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
поделите шесть пополам:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru