关于位运算的这段代码运行结果感觉"有毒",看看怎么解释~
在编译代码前先猜猜运行结果为多少,然后看看实际运行结果怎么解释……
程序代码:
#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编辑过]









