C语言中~与!的区别

  • ! 是逻辑非or否定

​ 凡是a的值不为0的,!a 就等于0;

​ 如果a的值为0,则 !a 的值为1

  • 而~这个是 按位取反
    比如 int a=2 ; 用二进制表示为00 00 00 10;
    则 !a = 0
    而 ~a = 11 11 11 01 (按位取反后的二进制结果,此结果为补码形式)
    求其源码为 : 10 00 00 11 即为 -3
    所以 ~a 的结果为 -3

因此,在单片机程序开发时,想要令信号相反,应使用~

posted @ 2023-01-14 13:03  Dawn_Yulin  阅读(2315)  评论(0)    收藏  举报