Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
/*------------
Чтобы можно было задавать константу в двоичном виде
Пример вызова
BIN8(11110101)
BIN16(11110101,11001100)
BIN32(11110101,11001100,11001111,01010101)
-------------*/
#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))