大家好,欢迎来到IT知识分享网。
前面介绍了单片机为什么要用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 |
左移“<<”和右移”>>”计算逻辑
移位操作要考虑数据是否有符号,在单片机编程时,无符号类型用的比较多,所以这里介绍无符号的移位。
无符号数据左移时,右侧补零,左侧被移走。

左移”<<“图解
无符号数据右移时,左侧补零,右侧被移走。

右移“>>”图解
按位计算的意义
前面说过,按位逻辑计算对寄存器的配置非常方便,因为寄存器是可“位”操作的,要寄存器的某位操作时,不能更改其他位的数值。
后面还会继续介绍位操作的编程实现方式。
如果文章有所帮助,请关注、评论并转发吧。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/183918.html