我在面试中问了这个问题。假设我必须检查第3位:
a=0x9004;
我说过的
if((a<<13>>15)^1==1)
printf("bit 3 is not set");
else
printf("bit 3 is set");
但是我感觉这不是他们想要的。
if ((unsigned int )a ^ (0x4) < (unsigned int )a)
printf("bit 3 is set");
else
printf("bit 3 is not set");
如果设置了位3(0x4
),则a ^ 0x4
算术值将小于a
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句