分享免费的编程资源和教程

网站首页 > 技术教程 正文

单片机C语言编程,位操作(单片机的位操作)

goqiw 2025-06-12 12:27:26 技术教程 6 ℃ 0 评论

前面介绍了单片机为什么要用C语言编程、单片机编程要使用哪些编程环境。从本节开始介绍单片机编程的基本知识。第一节要介绍的是按位操作。因为在配置单片机的寄存器时,位操作是非常常用的,比如将某个单片机的GPIO配置为输出方向、且输出为0时,用位操作就非常方便。

单片机的位操作

位操作包含哪些操作呢?常用的有六种操作:按位与“&”、按位或“|”、按位取反“~”、按位异或“^”、左移“<<”、右移“>>”等,表格如下:

按位与"&"计算逻辑

按位与"&"的逻辑是输入中只要有一个0时,输出为0;输入都为1时,输出才为1。真值表格如下:

输入A

0

0

1

1

输入B

0

1

0

1

输出

0

0

0

1

按位或“|”计算逻辑

按位“|”的逻辑是输入中只要有一个1时,输出为1;输入都为0时,输出才为0。真值表格如下:

输入A

0

0

1

1

输入B

0

1

0

1

输出

0

1

1

1

按位取反(~)计算逻辑

按位取反(~)可以理解为非,即翻转,输入为0时,输出为1;输入为1时,输出为0。真值表格如下:

输入

0

1

输出

1

0

按位异或“^”计算逻辑

按位异或(^)是用来判断输入是否一致的,如果两个输入一致则为0;输入不一致则为1。真值表格如下:

输入A

0

0

1

1

输入B

0

1

0

1

输出

0

1

1

0

左移“<<”和右移">>"计算逻辑

移位操作要考虑数据是否有符号,在单片机编程时,无符号类型用的比较多,所以这里介绍无符号的移位。

无符号数据左移时,右侧补零,左侧被移走。

无符号数据右移时,左侧补零,右侧被移走。

按位计算的意义

前面说过,按位逻辑计算对寄存器的配置非常方便,因为寄存器是可“位”操作的,要寄存器的某位操作时,不能更改其他位的数值。

后面还会继续介绍位操作的编程实现方式。

如果文章有所帮助,请关注、评论并转发吧。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表