戳到痛处的按位取反~ 和 逻辑取反!

举报
ReCclay 发表于 2022/02/22 00:51:12 2022/02/22
【摘要】 竟然没有仔细想过这个问题,看这本书真的收益匪浅啊,阿弥陀佛,记录下记录下。 上代码,,, #include <stdio.h> #include <stdlib.h> i...

竟然没有仔细想过这个问题,看这本书真的收益匪浅啊,阿弥陀佛,记录下记录下。


上代码,,,

#include <stdio.h>
#include <stdlib.h>

int main()
{
    printf("~0      =0x%X,  \t  !0    =0x%X\n", ~0,   !0);
    printf("~1      =0x%X,  \t  !1    =0x%X\n", ~1,   !1);
    printf("~255    =0x%X,  \t  !255  =0x%X\n", ~255, !255);
    return 0;
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
~0      =0xFFFFFFFF,      !0    =0x1
~1      =0xFFFFFFFE,      !1    =0x0
~255    =0xFFFFFF00,      !255  =0x0

Process returned 0 (0x0)   execution time : 0.048 s
Press any key to continue.

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

所以,很明显了!

~ 是按位取反,
!是逻辑取反。(只有0、1)

另外也可以看到mingw编译器是把按位取反当做32位数据来处理,
逻辑取反当做8位数据处理。

文章来源: recclay.blog.csdn.net,作者:ReCclay,版权归原作者所有,如需转载,请联系作者。

原文链接:recclay.blog.csdn.net/article/details/79145757

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。