c语言1左移32位(1<<32)是多少,左移-1位呢?求大神解释!!!

如题所述

C语言中 << 是逻辑移位,不是循环移位。
1 左移 32 位后为 0,左移 -1 位实际是左移 255 位(互补),当然也是0。
这种问题可以写一段小程序,单步执行,看一下每一步的结果。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-16
1左移32位仍然是1,因为是循环移位
左移-1变为0x80000000
第2个回答  2013-04-16
1左移32位(1<<32)是1,左移1位是2,左移-1位是-2147483648
相似回答