Есть, но лучше все-таки ими не пользоваться...
Код
/* -------------------------------------------------------------------------
* Binary constant macros by Tom Torfs (tomtorfs@village.uunet.be)
* Sample usage:
* B8(01010101) = 85
* B16(10101010,01010101) = 43605
* B32(10000000,11111111,10101010,01010101) = 2164238933
*/
#define HEX__(n) 0x##n##LU
#define B8__(x) ((x & 0x0000000FLU) ? 1 : 0)\
+((x & 0x000000F0LU) ? 2 : 0)\
+((x & 0x00000F00LU) ? 4 : 0)\
+((x & 0x0000F000LU) ? 8 : 0)\
+((x & 0x000F0000LU) ? 16 : 0)\
+((x & 0x00F00000LU) ? 32 : 0)\
+((x & 0x0F000000LU) ? 64 : 0)\
+((x & 0xF0000000LU) ? 128 : 0)
#define B8(d) ((unsigned char)B8__(HEX__(d)))
#define B16(dmsb,dlsb) (((unsigned short)B8(dmsb) << 8) + B8(dlsb))
#define B32(dmsb,db2,db3,dlsb) (((unsigned long)B8(dmsb) << 24) \
+ ((unsigned long)B8(db2) << 16) \
+ ((unsigned long)B8(db3) << 8) \
+ B8(dlsb))
только типы своего компилера проверьте