发布网友 发布时间:2022-04-22 07:46
共4个回答
热心网友 时间:2022-06-18 00:14
~是位运算符,表示按位取饭,而!是逻辑运算符,输出结果只有0和1.
P1是个8位的寄存器,如果你用~,就表示把这个字节的8个bit反或来,如果你用!,如果P1非0,得到的就是1,否则就是0,也就是说只对P1.0的控制有效。
一个LED只需要用1位,所以建议你用你后面提到的那种定义方式,运算的时候用~会好点。
热心网友 时间:2022-06-18 00:14
1.不是一样,“!”的结果要么是0要么是1,“~”的结果就是把原来的数各位取反。
“!”是逻辑非运算符;
“~”是位取反运算符;
2.
#define LED P1^0只把LED对应到P1.0口上,只有一位,LED=0x0f,怎么能把8为值赋给1位呢,会产生不正确的结果。
热心网友 时间:2022-06-18 00:14
'!'是取反;但'~'是按位取反;
在C 语言里除了0都按真算的!所以"!35"是等于0的!
但'~'是按位取反:比如说:
4--> 用二进制表示:0100
~4-->按位取反后:1011了-->十进制就是11了呀!所以不一样的!
你把P1按位异或了:0^0=0,1^0=1,0^1=1,1^1=1;
你算算不就知道了?不行的!
热心网友 时间:2022-06-18 00:15
我也在搞单片机,加我百度好友吧,以后经常讨论。。。