1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
在网上偶尔看到一个关于寄存器某位清零的操作,有人指出如题写法并不健壮
问题的关键在于 ~1 的值,假设值 1 占8位(由编译器决定), 二进制表示为 0000 0001 那么~1的值为 1111 1110 此时与一个寄存器 & ,确实可以将第 0 位清零,且确保[7:1]位不变。 但是如果该寄存器超过8位,比如16位, 那么在做&操作时 ~1 会被在前自动补0, 此时 ~1 == 0000 0000 1111 1110。 这样reg与16位寄存器 位与&, 有可能改变寄存器高8位的值。 |
|
|
|
只有小组成员才能发言,加入小组>>
3310 浏览 9 评论
2991 浏览 16 评论
3492 浏览 1 评论
9055 浏览 16 评论
4086 浏览 18 评论
1174浏览 3评论
603浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
596浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2333浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1894浏览 2评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 20:23 , Processed in 1.113948 second(s), Total 78, Slave 59 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号