C语言中~与!的区别
本帖最后由 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
int在51单片机是16位吧及-32765-32765之间 soma 发表于 2024-5-10 16:29
int在51单片机是16位吧及-32765-32765之间
是 学习偶尔遇到这个问题 复制的别人的 int占4个字节 soma 发表于 2024-5-10 16:29
int在51单片机是16位吧及-32765-32765之间
改成char??? {:lol:} 本帖最后由 晓飛飛 于 2024-5-10 22:49 编辑
a ^= 0xFF是什么效果,别忘了,这个也能取反{:4_249:}
任何数与1进行异或运算,结果取反
页:
[1]