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

这时候默认是x是32位数
解析说是判断x的最高位是否在高16位上,是什么意思呢?

潇潇雨雨
浏览 1363回答 1
1回答

炎炎设计

解析得对啊!把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吗?不知出题人的意图是啥——当然这是题外话。
打开App,查看更多内容
随时随地看视频慕课网APP