嵌入式C语言位运算之清位置位

简介: 如题,在嵌入式开发中,掌握位运算是节省开发时间和提高开发效率的一种高效方式。 我们不得不去熟悉如何快速掌握位运算这种高效的技巧,接下来看看程序。.#include #include int main(void){ unsigned char num = 0xfe ; ...

如题,在嵌入式开发中,掌握位运算是节省开发时间和提高开发效率的一种高效方式。

我们不得不去熟悉如何快速掌握位运算这种高效的技巧,接下来看看程序。.

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    unsigned char num = 0xfe ;      //1111 1110 
    num &= ~(1 << 3 | 1 << 2)  ;    //1111 0010
    printf("num:%x\n",num);
    num |= (1 << 3 | 1 << 2);
    printf("num:%x\n",num);
	getchar();
	return 0 ;	
} 
程序执行过程中,num &= ~(1 << 3 | 1 << 2) ; 这句话的意思是将0xfe的第2位和第3位清0,于是第一个printf输出是:0xf2

如果你想继续清往后的几位,可以接着在后面或(|)上要清的位数。这里的非(~)表示按位取反,&=表示与上对应的数,这里是按位与上位1,我们都知道按位与的概念就是有1为1,有0为0。

num |= (1 << 3 | 1 << 2) ;这句话的意思是将0xf2这个数的第2位和第3位置一,于是第二个printf输出是:0xfe;也就恢复成初始值0xfe了。这里按位或的概念想必都清楚,有1一定为1,全0才为0。根据这些特性,很快,我们就可以操作对应的位了。

        在操作硬件寄存器中,也是要熟练的操作位,方法雷同,要根据数据手册说明书来进行操作,以前写过一些文章,大家可以翻出来看看,熟悉一下。






目录
相关文章
|
2月前
|
算法 程序员 C语言
C语言位运算
C语言位运算
23 0
|
1月前
|
编译器 Linux C语言
嵌入式C语言(八)
嵌入式C语言(八)
20 0
|
1月前
|
存储 编译器 C语言
嵌入式C语言(六)
嵌入式C语言(六)
23 0
|
1月前
|
存储 编译器 程序员
嵌入式C语言(七)
嵌入式C语言(七)
20 0
|
1月前
|
编译器 C语言 芯片
嵌入式C语言(九)
嵌入式C语言(九)
18 0
|
1月前
|
缓存 小程序 编译器
嵌入式C语言(十)
嵌入式C语言(十)
25 0
|
10天前
|
算法 C语言 数据安全/隐私保护
【C 言专栏】C 语言中的位运算技巧
【5月更文挑战第2天】探索C语言中位运算的威力:高效处理标志位、数据压缩、加密及特定算法实现。了解位与(&)、或(|)、异或(^)、取反(~)和移位操作。通过示例代码学习判断奇偶、提取、设置和清除位。注意边界条件和可读性,利用位运算提升性能,结合位图和算法实现更多功能。掌握这些技巧,优化你的C语言编程。
【C 言专栏】C 语言中的位运算技巧
|
11天前
|
安全 算法 开发工具
【C 言专栏】基于 C 语言的嵌入式系统开发
【5月更文挑战第1天】本文探讨了C语言在嵌入式系统开发中的核心作用。嵌入式系统作为专用计算机系统广泛应用于家电、汽车、医疗等领域,具备实时性、低功耗等特点。C语言因其高效性、可移植性和灵活性成为开发首选。文章介绍了开发流程,包括需求分析、硬件选型、软件设计至部署维护,并强调中断处理、内存管理等关键技术。C语言在智能家居、汽车电子和医疗设备等领域的应用实例展示了其广泛影响力。面对硬件限制、实时性要求和安全挑战,开发者需不断优化和适应新技术趋势,以推动嵌入式系统创新发展。
【C 言专栏】基于 C 语言的嵌入式系统开发
|
13天前
|
传感器 算法 C语言
C语言在嵌入式系统开发中的优化策略与代码实现
C语言在嵌入式系统开发中的优化策略与代码实现
26 1
|
1月前
|
存储 编译器 Linux
嵌入式C语言(五)
嵌入式C语言(五)
17 0