完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
一、按位与(屏蔽、取出、清零)
1 & 0 = 0 0 & 1 = 0 0 & 0 = 0 1 & 1 =1 (1)屏蔽 int a = 0x1234; a & 0xff00 = 0x1200 取出高八位,屏蔽低八位 (2) 清零 将A寄存器的bit4位清0 A &= ~(1<<4); 二、按位或(设置) 1 | 0 = 1 0 | 1 = 1 1 | 1 = 1 0 | 0 = 0 (1)将A寄存器的bit4位置1 A |= (1<<4); 三、综合练习 假设寄存器a的值是0x34 = 0b0011 0100 现在要让a的bit6~bit4设置为101, 即最后的结果是a = 0b0101 0100 = 0x54 思路: ①先把bit6~bit4置0 ②再把bit6和bit4置1 代码如下(示例): #include int main(void) { unsigned int a = 0x34; // a = 0011 0100 = 52 = 0x34 printf("%xn", a); /* 置bit6~bit4 为 101 */ //先把bit6~bit4置0 a &= ~( 7 << 4 ); printf("%xn", a); // a = 0000 0100 = 4 = 0x04 //再把bit6和bit4置1 a |= ( 5<<4 ); printf("%xn", a); // a = 0101 0100 = 84 = 0x54 return 0; } 运行结果图: |
|
|
|
只有小组成员才能发言,加入小组>>
3269 浏览 9 评论
2947 浏览 16 评论
3446 浏览 1 评论
8967 浏览 16 评论
4041 浏览 18 评论
1084浏览 3评论
562浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
556浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2294浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1850浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-13 08:25 , Processed in 0.958691 second(s), Total 47, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号