B16( X X O O X X O O X X X X O O O O )if you first define
#define X <<1)+1 #define O <<1) /* the argument of B16 must be a total of 16 occurrences of one or the other of the above two macros, effectively expressing a number in binary */ #define B16(arg) (((((((((((((((((0 arg)For visual purposes it may be even better to use _ as the name for the zero-bit, rather than O; but there's a loss of portability then, since the identifier _ is in the C implementation's name space and therefore may be used for some purpose in some implementations. Another good choice would be o, which suggests 0 without looking quite so much like it.
This page by Steve Summit // Copyright 1995-2004 // feedback