找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 18870|回复: 12
打印 上一主题 下一主题
收起左侧

P2=~(0x01<<i);请问这个表示什么意思啊,谢谢!

  [复制链接]
跳转到指定楼层
楼主
ID:404479 发表于 2018-10-25 21:09 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教一下大家,谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩1
回复

使用道具 举报

沙发
ID:410814 发表于 2018-10-25 21:54 | 只看该作者
将0X01左移i位后取反 然后赋值给P2端口
比如此时i=1,0x01就是0000 0001,左移一位,右侧补0,变成0000 0010
取反,1111 1101 即0xfd
最后就是P0 = 0xfd
回复

使用道具 举报

板凳
ID:254600 发表于 2018-10-25 22:02 | 只看该作者
把1左移i位然后取反送到P2端口。
回复

使用道具 举报

地板
ID:277550 发表于 2018-10-25 22:20 | 只看该作者
P2=~(0x01<<i);

------------0x01<<i 向右移i位
------------~按位取反

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
回复

使用道具 举报

5#
ID:415527 发表于 2018-10-25 22:22 | 只看该作者
0x01是指最低位为1,其余七位为0,P2=~(0x01<<i);这个就是将00000001左移i位后取反,比如说i=3,那么(0x01<<i)的结果就是00001000,取反后为11110111,然后将这个值赋给P2口,
回复

使用道具 举报

6#
ID:415598 发表于 2018-10-26 08:48 | 只看该作者
先左移动i位,取反。赋值给p2
回复

使用道具 举报

7#
ID:308437 发表于 2018-10-26 09:06 | 只看该作者
以后遇到这个样的,看不懂语句,带入一个数字去,自己算一下就好了。实在不懂,再看相关C语言
回复

使用道具 举报

8#
ID:404479 发表于 2018-10-26 14:32 来自手机 | 只看该作者
小刘子啊咿呀哟 发表于 2018-10-25 22:22
0x01是指最低位为1,其余七位为0,P2=~(0x01

听君一席话,胜读十年书,谢谢
回复

使用道具 举报

9#
ID:98767 发表于 2018-10-26 15:50 | 只看该作者

向右??????????
回复

使用道具 举报

10#
ID:711931 发表于 2020-3-19 22:34 | 只看该作者
P2=P2<<1+0x01;   和P2=P2<<1;   P2=P2+1的区别是什么?
                              
回复

使用道具 举报

11#
ID:712335 发表于 2020-3-20 16:15 | 只看该作者
把0x01向左移动i位
回复

使用道具 举报

12#
ID:480251 发表于 2020-3-23 20:49 | 只看该作者
将0X01左移i位后取反 然后赋给P2端口,<<表示左移,>>表示右移,51单片机移位还可以使用_cror_(x,y)函数,使用时需要包含这个头文件#include <intrins.h>
里面具体的意义是_cror_(x,y)含义是二进制数x右移动y位;
常见的是
_crol_ 字符左移
_cror_ 字符右移
回复

使用道具 举报

13#
ID:420836 发表于 2020-3-24 05:27 | 只看该作者
将值左移i位,然后该值取反并将其赋给端口P2
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表