|
Задание константы в двоичном виде
Пример вызова:
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))
E-mail: info@telesys.ru