为了账号安全,请及时绑定邮箱和手机立即绑定

关于移位运算的一些疑惑

关于移位运算的一些疑惑

HUWWW 2019-02-20 14:22:03
对于任意w位的二进制,进行k位的移动时,真实的位移量为k mod w32bit的例子1 << 1 结果2 1 mod 32 => 11 << 32 结果1 32 mod 32 => 01 << 33 结果2 33 mod 32 => 1为什么不设计为 更直观的(个人想法) 直接移动k位1 << 33 => 01 << 666 => 0k mod w的这种设计是有什么特殊意义吗?
查看完整描述

2 回答

?
湖上湖

TA贡献2003条经验 获得超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.

所以,没什么特殊意义了哦,要问就问编译器厂商吧。编译器厂商:“滚”


查看完整回答
反对 回复 2019-02-24
  • 2 回答
  • 0 关注
  • 558 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信