关于位运算的这段代码运行结果感觉"有毒",看看怎么解释~
在编译代码前先猜猜运行结果为多少,然后看看实际运行结果怎么解释……程序代码:
#include<stdio.h> int main( void ) { unsigned int s=1; size_t i=33; size_t j=257; printf("%-4u%-4u\n",s<<i,s<<33); printf("%-4u%-4u\n",s<<j,s<<257); return 0; }
运行结果为
0 2
2 2
每一个结果是怎么来的……感觉这是一个很神奇的问题,有谁能解释一下~
[此贴子已经被作者于2017-12-8 13:35编辑过]