вот Вам чтобы не мучались(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Romario 16 марта 2004 г. 14:43
В ответ на: Подскажите, можно ли в языке Си задавать константы в двоичном виде? отправлено ciq2 16 марта 2004 г. 13:46



#define LongToBin(n) \
(\
((n >> 21) & 0x80) | \
((n >> 18) & 0x40) | \
((n >> 15) & 0x20) | \
((n >> 12) & 0x10) | \
((n >> 9) & 0x08) | \
((n >> 6) & 0x04) | \
((n >> 3) & 0x02) | \
((n ) & 0x01) \
)

#define __BIN(n) LongToBin(0x##n##l)

#define BIN8(n) __BIN(n)
#define BIN16(b1,b2) ((__BIN(b1) << 8) + __BIN(b2))
#define BIN32(b1,b2,b3,b4) ((__BIN(b1) << 24) + (__BIN(b2) << 16) + (__BIN(b3) << 8) + __BIN(b4))

пример

BIN8(11110101)
BIN16(11110101,11001100)
BIN32(11110101,11001100,11001111,01010101)


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru