打印

PORTB |=(1<<2)

[复制链接]
3592|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
supernan|  楼主 | 2012-12-9 14:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PORTB |=(1<<2)
这句为什么要这样写啊?
沙发
yinxiangh| | 2012-12-9 14:20 | 只看该作者
有啥问题?

使用特权

评论回复
板凳
zwll| | 2012-12-9 14:23 | 只看该作者
为什么不直接写成PORTB |=0x??格式呢?

使用特权

评论回复
地板
yinxiangh| | 2012-12-9 14:23 | 只看该作者
看自己的使用习惯吧

使用特权

评论回复
5
chenjunt| | 2012-12-9 14:25 | 只看该作者
原来是习惯问题啊,我还以为又是什么抠时间的问题呢

使用特权

评论回复
6
supernan|  楼主 | 2012-12-9 14:26 | 只看该作者
嗯,或者又是些老鸟故作深沉的伎俩 呵呵

使用特权

评论回复
7
chenjunt| | 2012-12-9 14:28 | 只看该作者
1<<2表示bit2
直观,可读性强,不容易出错

使用特权

评论回复
8
chuxh| | 2012-12-9 14:29 | 只看该作者
对,也不用自己计算

使用特权

评论回复
9
yinxiangh| | 2012-12-9 14:31 | 只看该作者
比如bit10是多少,至少你要计算一下才知道是多少,但是(1<<10)是不会错的

使用特权

评论回复
10
栩栩如生| | 2012-12-9 14:33 | 只看该作者
楼上几位一句道破天机,哈哈

使用特权

评论回复
11
yinxiangh| | 2012-12-9 14:36 | 只看该作者
PORTB |=(1u<<2) 保险点

使用特权

评论回复
12
栩栩如生| | 2012-12-9 14:36 | 只看该作者
编译器执行,不影响效率,看你习惯了

使用特权

评论回复
13
supernan|  楼主 | 2012-12-9 14:38 | 只看该作者
谢谢各位指点,我非常明白了

使用特权

评论回复
14
supernan|  楼主 | 2012-12-9 14:38 | 只看该作者
那就先结贴啦,周末愉快哈

使用特权

评论回复
15
永远的不知| | 2012-12-9 15:10 | 只看该作者
本帖最后由 永远的不知 于 2012-12-9 15:11 编辑

这样写容易读,一下就看出操作的事B口的第2脚,而且不影响执行效率,因为这个左移是编译器完成的。

使用特权

评论回复
16
xiumy| | 2012-12-10 12:52 | 只看该作者
这是对单独的某一位进行操作,不会影响PORTB口的其它位。

使用特权

评论回复
17
独来独往| | 2012-12-10 12:57 | 只看该作者
C语言中移位操作要比乘法运算和逻辑运算要快,所以这样写!其实你自己说的扣时间是对的!

使用特权

评论回复
18
figo20042005| | 2012-12-10 21:38 | 只看该作者
多直观的置位操作。这个很好懂哦

使用特权

评论回复
19
superman2012| | 2012-12-10 23:20 | 只看该作者
这句语句没问题呀,挺简洁的

使用特权

评论回复
20
gaochy1126| | 2012-12-10 23:46 | 只看该作者
io操作而已,不影响别的io口了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

730

主题

10412

帖子

6

粉丝