找回密码
 立即注册
查看: 122|回复: 6

C语言中~与!的区别

[复制链接]
  • TA的每日心情
    开心
    13 小时前
  • 签到天数: 39 天

    [LV.5]常住居民I

    38

    主题

    476

    回帖

    594

    积分

    高级会员

    积分
    594
    发表于 2024-5-10 15:57:01 | 显示全部楼层 |阅读模式
    本帖最后由 zhange 于 2024-5-10 17:15 编辑

    ! 是逻辑非or否定
    ​凡是a的值不为0的,!a 就等于0;
    ​如果a的值为0,则 !a 的值为1
    而~这个是 按位取反
    比如 char a=2 ; 用二进制表示为00 00 00 10;
    则 !a = 0
    而 ~a = 11 11 11 01 (按位取反后的二进制结果,此结果为补码形式)
    求其源码为 : 10 00 00 11 即为 -3
    所以 ~a 的结果为 -3

    回复 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 08:50
  • 签到天数: 99 天

    [LV.6]常住居民II

    9

    主题

    1024

    回帖

    1876

    积分

    金牌会员

    积分
    1876
    发表于 2024-5-10 16:29:17 来自手机 | 显示全部楼层
    int在51单片机是16位吧及-32765-32765之间
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    13 小时前
  • 签到天数: 39 天

    [LV.5]常住居民I

    38

    主题

    476

    回帖

    594

    积分

    高级会员

    积分
    594
     楼主| 发表于 2024-5-10 17:14:13 | 显示全部楼层
    soma 发表于 2024-5-10 16:29
    int在51单片机是16位吧及-32765-32765之间

    是    学习  偶尔遇到这个问题   复制的别人的      int占4个字节
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    13 小时前
  • 签到天数: 39 天

    [LV.5]常住居民I

    38

    主题

    476

    回帖

    594

    积分

    高级会员

    积分
    594
     楼主| 发表于 2024-5-10 17:15:22 | 显示全部楼层
    soma 发表于 2024-5-10 16:29
    int在51单片机是16位吧及-32765-32765之间

    改成char  ???
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    11 小时前
  • 签到天数: 149 天

    [LV.7]常住居民III

    9

    主题

    95

    回帖

    879

    积分

    高级会员

    积分
    879
    发表于 2024-5-10 17:23:56 | 显示全部楼层
    回复 送花

    使用道具 举报

  • TA的每日心情
    开心
    19 小时前
  • 签到天数: 126 天

    [LV.7]常住居民III

    18

    主题

    528

    回帖

    795

    积分

    荣誉版主

    热心市民

    积分
    795
    发表于 2024-5-10 22:47:50 | 显示全部楼层
    本帖最后由 晓飛飛 于 2024-5-10 22:49 编辑

    a ^= 0xFF是什么效果,别忘了,这个也能取反
    任何数与1进行异或运算,结果取反
    睁开眼睛做场梦~~~
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    11 小时前
  • 签到天数: 63 天

    [LV.6]常住居民II

    6

    主题

    274

    回帖

    481

    积分

    中级会员

    积分
    481
    发表于 2024-5-20 08:23:57 | 显示全部楼层
    !代表逻辑取反,即把所有非0的数值(相当于1)变为0,0变为1
    ~ 表示按位取反,即在数值的二进制表示方式上,将0变为1,将1变为0
    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-6-13 19:47 , Processed in 0.062547 second(s), 53 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表