首页 > 其他分享 >朱有鹏:位运算实战演练

朱有鹏:位运算实战演练

时间:2023-03-24 18:46:27浏览次数:46  
标签:实战 朱有鹏 4.2 int 给定 整型 演练

约定: 题目中出现"设置"字符就是要把寄存器设置为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

相关文章