Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Вы хотите прорубить - это очень хорошо. Суть - это вариация "классического" обмена значений двух переменных через XOR: a^=b^=a^=b;. Тут вообще все просто>>

Отправлено VasilyS (80.92.96.25) 25 июля 2010, г. 21:32
В ответ на: Странное выражаение... Не совсем понятно, что делает минус в логическом выражении... И лично мне, совсем неочеидна замена на x=m?a:b. А как выриант замены выражения с ветвлением на что-то без дрожания - я бы посмотрел на массивы. отправлено Юрий_СВ 25 июля 2010, г. 21:10

если априорно принять bool m, т.е. или 0, или 1. Тогда выражение примет вид:
x = (b^((-m)&(a^b)));
Разберем случаи: (все вычисления справа налево)
1) если m=0, то -m тоже=0, и в результате (x = b^0);
2) если m=1, то -m = ff, и x = (b^(a^b)); т.е.x=a
А остальная мишура - это !! это чтобы из числа "сделать bool". Тут уже блин условные переходы. Реализовать без них можно но получается немного громоздко.
Зря алекс начал - это невредно знать.


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 654:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru