小问题:为什么P2^1可以表示P2.1端口

treeglow 2008-07-13 07:37:27
如题,为什么呢?P2^1这个异或的运算是怎么样的?
...全文
924 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuiyan 2008-07-14
  • 打赏
  • 举报
回复
这个别用普通的异或操作符解释,不信可以在标准C下写一下,绝对无法实现C51中的功能。
C51中增加了sbit这个类型,用^实现bit对应功能是和这个sbit相关的。此功能只有在C51下才有效。
所以别问为什么,因为C51语言语法规范规定了可以这样用。
如果你自己设计一个语言,规定 sbit = P2&1; 那么就是用&而不是用^了。
ckc 2008-07-14
  • 打赏
  • 举报
回复
0 xor 0 = 0
0 xor 1 = 1
所以异或在实际中可以用来取某位的值,
p2 ^ 1 的结果只和p2.1位的状态有关系,其它位都和0异或,被清掉了
lbing7 2008-07-14
  • 打赏
  • 举报
回复
^

这个运算符被C51扩展了

和别的新加的关键字一样

为了适应单片机平台而改动的

当然,它依然具备标准C里的异或运算功能

也就这么回事

别想太多...

至于什么时候是什么作用,那么它于你用它的地方

以及编译器识别

qjx1984 2008-07-14
  • 打赏
  • 举报
回复
建议你查看一下REG51.H这个头文件 应该就能知道了

27,507

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧