binary constants (??)
Raymond Chen
raymond at math.berkeley.edu
Sun Nov 19 07:57:35 AEST 1989
/* Disgusting macro alert! */
#define BIT1(x) (0 x
#define BIT2(x) ((0 x
#define BIT3(x) (((0 x
/* ... */
#define BIT6(x) ((((((0 x
#define O *2)
#define I *2 + 1)
main()
{
printf("%x", BIT6(I O I O I O)); /* the 6-bit number 101010 */
}
----- alternately -----
#define OOOO *16)
#define OOOI *16+1)
#define OOIO *16+2)
/* ... */
#define IIII *16+15)
#define BIT4(x) (0 x
#define BIT8(x) ((0 x
/* ... */
#define BIT16(x) ((((0 x
main()
{
printf("%x", BIT16(OOOO OIOI IOIO OIIO)); /* the 16-bit number
0000 0101 1010 0110 */
}
/* Disclaimer: I don't use this! I just wrote it to see if it
could be done. It would be curious to compare this
against the original poster's macro which
approaches the problem from a different angle.
*/
Raymond Chen (mathematician by training, hacker by choice)
raymond at math.berkeley.edu
More information about the Comp.lang.c
mailing list