C51单片机被定义的值怎么会变了的呢a=0xfe; P1=a为什么不等于P1=0xfe,这两个完全相反呢?

学习 时间:2026-08-24 16:14:00 阅读:3211
C51单片机被定义的值怎么会变了的呢a=0xfe; P1=a为什么不等于P1=0xfe,这两个完全相反呢?#include //包含51单片机寄存器定义的头文件sbit a=0xfe;void main(){while(1){P1=a; //这个值怎么会等于(00000001)?P1=0xfe;//这个值怎么会等于(11111110)?}}

最佳回答

高高的棒球

快乐的小蚂蚁

2026-08-24 16:14:00

因为P1=a,且a是一个位变量,位变量非0即1P1=0xfe,就是11111110,没错啊 再问: 因为P1=a,且a是一个位变量,位变量非0即1 我还是弄不懂怎么位变量是非0即1呢,是不是成了一个反相器吖? 再答: 编译器就是这么规定的

最新回答共有2条回答

  • 干净的大山
    回复
    2026-08-24 16:14:00

    因为P1=a,且a是一个位变量,位变量非0即1P1=0xfe,就是11111110,没错啊 再问: 因为P1=a,且a是一个位变量,位变量非0即1 我还是弄不懂怎么位变量是非0即1呢,是不是成了一个反相器吖? 再答: 编译器就是这么规定的

上一篇 世界上最长情的是什么?

下一篇 我们为什么要学正数和负数?还有对有理数单元有什么提问?