1 << 1 结果2 1 mod 32 => 1 1 << 32 结果1 32 mod 32 => 0 1 << 33 结果2 33 mod 32 => 1
为什么不设计为 更直观的(个人想法) 直接移动k位
1 << 33 => 0 1 << 666 => 0
k mod w的这种设计是有什么特殊意义吗?
HUWWW
浏览 559回答 2
2回答
湖上湖
C语言里,如果位移量大于等于被操作数的位数,是标准未定义行为。就是编译器怎么处理都可以。In any case, the behavior is undefined if rhs is negative or is greater or equal the number of bits in the promoted lhs.所以,没什么特殊意义了哦,要问就问编译器厂商吧。编译器厂商:“滚”