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

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

最佳回答

妩媚的咖啡

美丽的外套

2026-04-03 11:33:49

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

最新回答共有2条回答

  • 可靠的烤鸡
    回复
    2026-04-03 11:33:49

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

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

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