как на Си (Keil С51) по красивее написать вот это (операция с битами) (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
|
Отправлено
штудент 17 ноября 2004 г. 16:59
|
|
|
|
Все элементароно, необходимо например скопировать 1 бит.
На Асме все просто и прозрачно
mov A,var
mov C,Acc.2
mov Acc.3,C
mov var,A
На Си ни чего лучше вот этого непридумал :)
if ((var & 0x04) != 0) // жуть, можно как нить по-проще ??? :)
{
var |= 0x08;
}
else
{
var &= 0xF7;
}
Составить ответ
|||
Конференция
|||
Архив
Ответы
- Точно будет работать — Elektronik (17.11.2004 21:54, 408 байт)
- Кстати, кейл генерит достаточно приличный код на var ^= (var & 0x04) << 1; — vmp (17.11.2004 17:52, 83 байт)
- А я бы так... — hjk (17.11.2004 17:24, 253 байт)
- наверное так: ACC=Var; ACC.3=ACC.2; Var=ACC; — kV (17.11.2004 17:17, пустое)
- Ответ: — Vadimka (17.11.2004 17:17, 321 байт)
- Исключительно для кейла C51 — vmp (17.11.2004 17:14, 126 байт)
- Ответ: незнаю как там насчёт Кейла, но в обычном Си можно так: var2^=((var1^var2)&8); — 507 (17.11.2004 17:08, пустое)
- для чего такой изврат? — bialix (17.11.2004 17:06, пустое)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru