- 前言
- 一、按位与
- 1、清零
- 2、取某个数中指定位
- 二、按位或
- 三、异或
前言
在学习微控制器编程时,经常会具体到某一个位,本人在这方面缺乏了解,且每次都是零零散散的知识,现将开发过程中位操作用法记录如下。
C语言中位运算符如下:
| 运算符 | 含义 |
|---|---|
| & | 按位与 |
| | | 按位或 |
| ^ | 异或 |
| ~ | 取反 |
| << | 左移 |
| >> | 右移 |
一、按位与
参与运算的两个数据,按二进制位进行“与”运算,如果相应的两个二进制位都为1,则该位结果为1,否则为0.
常见用法:
要将一个数a清零,只需找一个二进制数b,满足:a中为1的位,b中相应的位为0,然后使a&b,即可达到目的。
c a=(01001101)B
令
b=(10110010)B
即可(不一定用上面这个数,只要满足条件)。
如有一个八位的数,要想获取其低四位,只需找一个数,满足:低四位全为1,高四位全为0。
a=(01001101)B
令
b=(00001111)B
&=~三、异或
与1异或改变,与0异或不变
1^1=0 0^1=1 1^0=1 0^0=0



