找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2079|回复: 10
收起左侧

C语言这个<<符号不是左移的意思啊?

[复制链接]
ID:895406 发表于 2021-3-25 09:07 | 显示全部楼层 |阅读模式
IO0CLR=(1<<16);  //P1.16置为低电平
IO0CLR 是输出清零寄存器,写入1时,为底电平,写入0时无效。
后面的(1<<16)是在p1.16这个引脚写入1吗?为啥不是1左移16位了 ?这个<<符号不是左移的意思啊
回复

使用道具 举报

ID:814525 发表于 2021-3-25 11:32 | 显示全部楼层
IO0CLR=(1<<16); 实际就是IO0CLR=0x8000; 1<<16二进制就是1000 0000 0000 0000, IO0CLR最高位对应的就是P1.16

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:895406 发表于 2021-3-25 14:16 | 显示全部楼层

IO0CLR=(1<<16);  这个代码就是第16个引脚写入1,是不是这个意思?怎么送你黑币了 ?
回复

使用道具 举报

ID:213173 发表于 2021-3-25 21:00 | 显示全部楼层

1<<16=65536,二进制是 1 0000 0000 0000 0000
回复

使用道具 举报

ID:738987 发表于 2021-3-25 22:47 | 显示全部楼层
是的 << 左移 >> 右移
回复

使用道具 举报

ID:895406 发表于 2021-3-26 08:46 | 显示全部楼层


1<<16=65536 咋为65536 这个我就看不懂了
回复

使用道具 举报

ID:743654 发表于 2021-3-26 08:54 | 显示全部楼层

1<<16位就是1 0000 0000 0000 0000=2^16=65536,目的就是把P1.16位置1,其他位不变。类似的你想把P1.8位置1就是IO0CLR=(1<<8);

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:895406 发表于 2021-3-26 09:12 | 显示全部楼层

嗯 ,明白了,谢谢,咋送你黑币?
回复

使用道具 举报

ID:89515 发表于 2021-3-26 09:23 来自手机 | 显示全部楼层
你写的是清零寄存器,如果它要有效就必须置一。也就是置一的时候达到清零的效果,但是清零不是清的输出清零寄存器而是输出寄存器。这是两个寄存器的应用。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:744327 发表于 2021-3-26 09:46 | 显示全部楼层
1<<16=65536  将1左移16位后,是65536

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:207421 发表于 2021-3-26 13:52 | 显示全部楼层
1. 左移<<就是右边添0,左移<<16就是右边16个0
2. 那么结论就是 1=0001, 0001<<16 结果就是   1 0000 0000 0000 0000  十进制就是 65536

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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