#include #include #define MASK(msb, lsb) ( (((unsigned)1<<((msb)-(lsb)+1))-1) << (lsb) ) int main(int argc, char **argv) { unsigned a,b; if(argc<=1) { fprintf(stderr, "usage: %s \n", argv[0]); return 1; } if(argc>1) { a=strtoul(argv[1], 0, 0); } else { a=0; } if(argc==3) { b=strtoul(argv[2], 0, 0); } else { b=a; } printf("0x%08x\n", MASK(a,b)); return 0; }