约定: 题目中出现"设置"字符就是要把寄存器设置为1;出现”清除“ 就是把寄存器值设置为0
位操作口诀: 要置1用|;
要清零用&;
要取反用^;
~和 << >> 用来构建特定二进制数.
4.2.4.1 给定一个整型a, 设置a的bit3,保证其他位不变。
答: a = a | (1<<3) 或 a |= (1<<3)
4.2.4.2 给定一个整型a, 设置a的bit3~bit7(3~7位为1),保证其他位不变。
答: a = a | (0b11111<<3)
#include <stdio.h> int main(void) { unsigned int a; a = 0; printf("a = 0x%x\n", a); a |= (0b11111<<3); printf("a = 0x%x\n", a); }
结果:
4.2.4.3 给定一个整型数a, 清除a的 bit15,保持其他位不变。
答: a = a & (~(1<<15)); 或者 a &= (~(1<<15))
#include <stdio.h> int main(void) { unsigned int a; a = 0xFFFFFFFF; printf("a = 0x%x\n", a); a &= (~(1<<15)); printf("a = 0x%x\n", a); }
结果:
4.2.4.4 给定一个整型数a,清除a的 bit15~bit23,其他位保持不变
答: a = a & (~(0x1ff<<15)); 或者 a &= (~(0x1ff<<15))
4.2.4.5 给定一个整型数a,
4.2.4.6
4.2.4.7
4.2.4.8
来源:
朱有鹏-嵌入式软件工程师完全学习路线图专题\4.C语言高级专题精讲视频课程套餐\4.2.C语言位操作\
4.2.4.位运算实战演练1.mp4
4.2.5.位运算实战演练2.mp4
标签:实战,朱有鹏,4.2,int,给定,整型,演练 From: https://www.cnblogs.com/wutou/p/17252503.html