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

关于c语言s=!!(x>>16)位运算什么意思?

关于c语言s=!!(x>>16)位运算什么意思?

C++
潇潇雨雨 2018-07-15 18:10:20
这时候默认是x是32位数解析说是判断x的最高位是否在高16位上,是什么意思呢?
查看完整描述

1 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

解析得对啊!把x右移16位,那么x的“高16位”就移到“低16位”上了。这时若x不为0,则!x就是0,!!x就是1。所以s=!!(x>>16);后若x的“高16位”中有1则结果为1,否则为0,这就判断了x的最高位是否在高16位上了。不过这题说的“最高位”显然是指1,难道0就不能做最高位?0和正整数的最高位不都是0吗?不知出题人的意图是啥——当然这是题外话。


查看完整回答
反对 回复 2018-07-22
  • 1 回答
  • 0 关注
  • 1362 浏览

添加回答

举报

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