stm32的这句功能理解,但是C语言怎么解释 :RCC->CFGR|=1<<16

功能是将寄存器RCC->CFGR的第16位置1,那不应该是RCC->CFGR<<16|=1吗?是运算优先级的问题吗?烦请用C语言仔细讲解下,谢谢!... 功能是将寄存器RCC->CFGR的第16位 置1,那不应该是 RCC->CFGR<<16|=1 吗?是运算优先级的问题吗?烦请用C语言仔细讲解下,谢谢! 展开
 我来答
cdyzxy
2014-12-03 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:85%
帮助的人:3764万
展开全部
RCC->CFGR|=1<<16;相当于RCC->CFGR=(1<<16);或者r=1; r<<=16; RCC->CFGR=r;
而如果写成RCC->CFGR<<16|=1;这个是个语法错误的语句,原因是赋值号左边不能出现表达式。实际上你的字面意思是先将CFGR寄存器的值读出来然后左移16位再在最低位或个1,这不是将第16位置一的算法。
将第16位置1就是用这个寄存器或上一个第16位是1的数,1<<16就是这样一个数。
Brooklebu
2014-12-03 · TA获得超过281个赞
知道小有建树答主
回答量:281
采纳率:0%
帮助的人:302万
展开全部
不,或一至一
1<<16 ==> 把1从0000000000000001变成1000000000000000
再把RCC->CFGR或运算上这个值,那么RCC->CFGR的第十六位就至一了
RCC->CFGR<<16的意思是把RCC->CFGR左移16位
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
吾孤云去看山
2014-12-03 · 超过20用户采纳过TA的回答
知道答主
回答量:47
采纳率:71%
帮助的人:19.2万
展开全部
你要把RCC->CFGR理解为一个寄存器地址,将寄存器RCC->CFGR的第16位 置1
的话应该是RCC->CFGR |=1<<16;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-12-04
展开全部
青 年问禅师:“为什么在相亲节目上牵手成功的男女最后大部分都劈腿了?”禅师拿出一根橡皮筋让他扯长突然松手,橡皮筋弹了过去,青年人头上冒出汗珠,斜眼呲 牙摸着疼痛的手,恍然大悟地说:“您的意思是受伤的总是不愿放手的人?”禅师怒道:“我特么的意思是拉皮条是不会有好下场的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-12-04
展开全部
这是寄存器移位运算,先置1再移位
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式