加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在C中,如何检查是否使用XOR设置了一个位?

发布时间:2020-12-16 10:09:01 所属栏目:百科 来源:网络整理
导读:我在面试时问了这个问题. 假设我必须检查第3位: a=0x9004; 我说过的 if((a1315)^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 s
我在面试时问了这个问题.
假设我必须检查第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),则^ 0x4将是较小的算术值,然后是a.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读