该问题来自社区帖: https://bbs.csdn.net/topics/615204432.为符合问答规范, 该问题经过ChatGPT优化
请问 4294967295 << 32 为何还是 4294967295 而不是 0?
4294967295 的二进制是 32 个 1:11111111111111111111111111111111
左移 31 位,4294967295 << 31,结果是 10000000000000000000000000000000,这个没问题。
但左移 32 位后,结果还是 4294967295(即二进制的 32 个 1)。
使用 ((uint)4294967295) << 32 依然如此。
请问这是什么原理?