硬件家园单片机C语言零基础入门资料汇总链接:

https://mp.weixin.qq.com/s/hMTreNUX_V90461tvALjJA

一、逻辑与或非

基础理论:

逻辑与或非,运算对象是布尔值(1或0,真或假),类似于数字电路的与门,或门,非门。与关系运算符配合,一般用于选择语句与循环语句中

1、逻辑与

符号为&&。 参与运算的两个表达式都为真时,结果才为真,否则为假。

例如:

uint8_t a = 3,b=5;

if((a3) && (b5))

{执行};

2、逻辑或

符号为||。 参与运算的两个表达式只要有一个为真,结果就为真;两个表达式都为假时结果才为假。

例如:

uint8_t a = 4,b=5;

if((a3) || (b5))

{执行};

3、逻辑非

符号为!。 参与运算的表达式为真时,结果为假;参与运算的表达式为假时,结果为真。

例如:

bit Flag = 0;

if(!Flag)

{执行};

应用举例:

直播现场编程。

二、按位与或反

按位与或反,运算对象是8位,16位或32位的整型数据,运算数据的每一比特位按逻辑与或非操作。

1、按位与

符号为&。参与运算的两个数据按二进制位进行逻辑与操作。

例如:

uint8_t a = 0xAA,b=0x55,c;

c = a & b = 0x00;

特殊应用:

清零指定比特位

清零第0位: 运算数据 & 0xFE //1111 1110 ~(0x01 << 0)

清零第1位: 运算数据 & 0xFD //1111 1101 ~(0x01 << 1)

清零第2位: 运算数据 & 0xFB //1111 1011 ~(0x01 << 2)

清零第3位: 运算数据 & 0xF7 //1111 0111 ~(0x01 << 3)

清零第4位: 运算数据 & 0xEF //1110 1111 ~(0x01 << 4)

清零第5位: 运算数据 & 0xDB //1101 1111 ~(0x01 << 5)

清零第6位: 运算数据 & 0xB7 //1011 1111 ~(0x01 << 6)

清零第7位: 运算数据 & 0x7F //0111 1111 ~(0x01 << 7)

2、按位或

符号为|。 参与运算的两个数据按二进制位进行逻辑或操作。

例如:

uint8_t a = 0xAA,b=0x55,c;

c = a | b = 0xFF;

特殊应用:

置位指定比特位

置位第0位: 运算数据 | 0x01 //0000 0001 (0x01 << 0)

置位第1位: 运算数据 | 0x02 //0000 0010 (0x01 << 1)

置位第2位: 运算数据 | 0x04 //0000 0100 (0x01 << 2)

置位第3位: 运算数据 | 0x08 //0000 1000 (0x01 << 3)

置位第4位: 运算数据 | 0x10 //0001 0000 (0x01 << 4)

置位第5位: 运算数据 | 0x20 //0010 0000 (0x01 << 5)

置位第6位: 运算数据 | 0x40 //0100 0000 (0x01 << 6)

置位第7位: 运算数据 | 0x80 //1000 0000 (0x01 << 7)

3、按位取反

符号为~。 参与运算的数据按二进制位进行逻辑非操作。

例如:

uint8_t a = 0xAA,b=0x55,c;

c = ~a = 0x55;

c = ~b = 0xAA;

应用举例:

直播现场编程。

三、按位异或

基础理论:

符号为^,参与运算的两个数据按二进制位进行“异或”运算。
运算规则:00=0;01=1;10=1;11=0;

例如:

uint8_t a = 0xAA,b=0x55,c;

c = a^b = 0xFF;

uint8_t a = 0xFF,b=0xFF,c;

c = a^b = 0x00;

特殊应用:

取反指定比特位

取反第0位: 运算数据 ^ 0x01 //0000 0001 (0x01 << 0)

取反第1位: 运算数据 ^ 0x02 //0000 0010 (0x01 << 1)

取反第2位: 运算数据 ^ 0x04 //0000 0100 (0x01 << 2)

取反第3位: 运算数据 ^ 0x08 //0000 1000 (0x01 << 3)

取反第4位: 运算数据 ^ 0x10 //0001 0000 (0x01 << 4)

取反第5位: 运算数据 ^ 0x20 //0010 0000 (0x01 << 5)

取反第6位: 运算数据 ^ 0x40 //0100 0000 (0x01 << 6)

取反第7位: 运算数据 ^ 0x80 //1000 0000 (0x01 << 7)

应用举例:

直播现场编程。

四、左移与右移

基础理论:

符号为<<与>>,运算对象是8位,16位或32位的整型数据, 把数据向左或向右移动若干位。向左移动时,高位溢出,低位补0;向右移动时,低位溢出,高位补0,。

例如:

uint8_t a = 0xCB,c;

c = a << 5 = 0x40;

c = a >> 3 = 0x19;

应用举例:

直播现场编程。

单片机C语言零基础入门05 - 逻辑运算相关推荐

  1. c语言int转字符串_C语言零基础入门-指针-05

    C语言零基础入门-指针-05 本节要点: 1,字符指针. 2,字符串指针. 3,指针的参数传递 4,多重指针 01. 字符指针 这里的定义与前面的基本一样,所谓的字符指针就是这个指针指向的是一个字符型 ...

  2. c语言零基础自学,c语言零基础入门 该如何学习

    原标题:c语言零基础入门 该如何学习 ​零基础学习C语言该从哪里开始学习呢?在学习之前你可以先问自己,为什么我要学C语言?是为了应付考试,还是为了应聘,还是为了提高自己的编程能力.如果你以后想要长期致 ...

  3. c语言零基础入门(经验总结)

    作者本人也是计算机小白一枚,作为一名未来的电脑工作者,最开始学的就是c语言.将其作为一门了解编程,认识算法的学科再好不过.在本篇文章中不会具体涉及过多的C语言写法注意事项,主要是想谈一谈这半年中我的一 ...

  4. 最新C语言零基础入门(带课件+源码)

    C语言零基础入门 带课件+源码 下载地址:百度网盘

  5. c语言word类型_C语言零基础入门—数据类型

    ​C语言零基础入门--3.数据类型 这一节的主要任务是 讲解C语言的 数据类型 . 1. 数据类型 1.1 何为数据类型 数据类型,其实在我们生活中经常被使用,但是在编程语言中被重新定义了一下,并且加 ...

  6. C语言 const 修饰函数参数 - C语言零基础入门教程

    C语言 const 修饰函数参数 - C语言零基础入门教程 目录 一.const 简介 1.const 修饰变量 2.const 修饰指针 3.const 修饰在函数名前面 4.const 修饰在函数 ...

  7. C语言零基础入门——1.基础知识与环境搭建。

    C语言零基础入门--1.基础知识与环境搭建. 好了.终于迎来了第一篇文章,这篇文章要做的事情非常简单,主要有三个事情 ​ 第一:C语言的介绍. ​ 第二:计算机的基础知识. ​ 第三:C语言的环境安装 ...

  8. C语言零基础入门:孙海洋-C语言程序设计-清华大学出版社

    C语言零基础自学入门:**<C语言程序设计>-孙海洋-清华大学出版社 为方便同学们学习,在中国大学慕课网 免费提供全套视频讲解. 讲解清晰易懂,便于自学,几乎每个知识点均有对应例程,注重程 ...

  9. C语言 strcat_s 函数 - C语言零基础入门教程

    目录 一.strcat_s 函数简介 二.strcat_s 函数原理 三.strcat_s 函数实战 四.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语 ...

最新文章

  1. 深入剖析-关于分页语句的性能优化
  2. Android Retrofit @Streaming 注解失效(二)
  3. 03_Introduction_to_AMBA_AXI
  4. marc数据个人心得
  5. python字典和集合双向索引_Python字典和集合
  6. python元组为什么不可变_为什么python字符串和元组是不可变的?
  7. 20190501-整数翻转
  8. android sim卡分析,Android 判断SIM卡属于哪个移动运营商详解及实例
  9. jquery 自定义插件!
  10. 工业自动化控制软件SCADA数据模型的使用方法实例
  11. 标签上title属性与alt属性的区别是什么
  12. arm neon介绍
  13. 技术可行性与操作可行性的资料搜集与分析
  14. wind7计算机控制面板在哪,Win7控制面板在哪打开|win7打开控制面板的小技巧
  15. 暴躁算法(剑指系列)-每日一练
  16. excel多个表格数据汇总之汇总指定名称工作表
  17. CSS实现当鼠标移入或者移出时实现动画过渡效果
  18. layui之图片上传
  19. (三)OpenCV中的图像处理之轮廓
  20. “AI+教育”想做好有多难?网易有道CEO、学霸君CEO等4位大佬“掏心窝”...

热门文章

  1. Windows搭建nexus3.xx
  2. 医疗等保2.0|新版测评标准对医疗行业网络安全等级保护提出了更高要求
  3. JS 在线引入jQuery
  4. 1.深度linux,深度操作系统20.2.1 发布
  5. linux中su命令源码,Linux中的su命令的详细解释
  6. EMC测试仪器_新能源汽车EMC测试—HPK高压耦合器测试系统
  7. 新会员太少? 门店会员拉新
  8. tecplot——Fluent重叠网格解决方案
  9. 21西南交通大学计算机专硕成功上岸
  10. 学习编程前需要知道什么?