int test = 0x78;
test = test<<32; printf("test = %d\n", test); //假设sizeof(int)=32 在vc编译器里,当左移右移的右操作数大于等于左操作数类型bits时,把这种操作定以为 移动的位数等于右操作数对左操作数类型bits的余数。 即在例中,相当于左移了0位。。。 <<33相当于左移了1位。。 但是在C标准里,<<32的行为是未定义的。 /////////////////////////////////////////////////////////////////////// 32bit的东西,最多只能做31位的左移…… |
|