Nikel_Chieh 2022-02-22 14:32 采纳率: 83.3%
浏览 19
已结题

为什么x & -1 == x (语言-c语言)

为什么
x & -1 == x

凑字数《》
正文长度小于30个字符,请进行修改!
正文长度小于30个字符,请进行修改!

  • 写回答

2条回答 默认 最新

  • a5156520 2022-02-22 14:48
    关注

    下面是我的理解,供参考:
    参与二进制的按位与操作时,-1的二进制就是:1111 1111 1111 1111 1111 1111 1111 1111 ,
    二进制都是1,所以无论x为多少,与位都为1的一个二进制串进行按位与操作,都是他自己本身,
    0(x的某一位)&1(-1的任意位)是0(x的某一位本身),1(x的某一位)&1(-1的任意位)就是1(x的某一位本身),就是无论x的二进制位串是多少与-1的二进制位串进行按位与操作,都是x本身。

    #include <stdio.h>
    
    int main(void){
        
        int x = 2;
        
        printf("x&-1=%d\n",(x&-1));
        printf("x=%d\n",x);
        printf("x&-1==x:%d\n",(x&-1)==x);
        
        return 0;
    } 
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月3日
  • 已采纳回答 2月23日
  • 创建了问题 2月22日

悬赏问题

  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络
  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开
  • ¥30 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入
  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错