A 在许多机器上,当移动一个w位的值时,实际上位移量是通过计算k mod w得到的。但是C语言不保证在所有的机器上都是这么做的,在sun spark上就是例外,因此,位移数量应该保持小于字长。
B 将int beyond_msb = 1<<32;
分为两步 int beyond_msb = 1<<31;
beyond_msb = beyond_msb << 1;
C
int int_size_is_32()
{
int set_msb = INT_MIN;
int beyond_msb = 1<<15;
beyond_msb <<= 15;
beyond_msb <<= 2;
return set_msb && !beyond_msb;
}