P.S.: Change i to long for these poor 16 bit hosts... int f() { int j = 1; long i; for (i = -0x80000000L; i < 0x60000000L; i += 0x10000000L) j <<= 1; return j; } int main () { if (f () != 16384) abort (); return 0; }