1. 1LLu 表示unsigned long long 类型,8字节;
2. 编译器将1默认为int型[-2^31,2^31-1],1<<31 将1左移31位,将符号位变为1;
3. 将int扩展成unsigned long long 类型时,是符号位扩展,高位补1.
结果:
所以最后结果为2^33
如果改成下面的代码,则结果为0.
1. 1LLu 表示unsigned long long 类型,8字节;
2. 编译器将1默认为int型[-2^31,2^31-1],1<<31 将1左移31位,将符号位变为1;
3. 将int扩展成unsigned long long 类型时,是符号位扩展,高位补1.
结果:
所以最后结果为2^33
如果改成下面的代码,则结果为0.