单片机判断语句与位运算的坑

一.问题描述

在我判断Oled的某点的值是否为1时,用到了如下判断语句

if(oled[x][y/8] &=1<<(y%8)

但是,当我将其改为如下的判断语句,代码却跑出BUG了

if((oled[x][y/8]&=1<<(y%8))==1)

二.原因分析

1.if语句理解错误

首选让我们看看下面的代码运行结果

#include <stdio.h>int main(){int a=-1;if(a) printf("此判断为真");elseprintf("此判断为假");
}

运行结果如下,实际上只要if判断语句中的值不为,判断即为
在这里插入图片描述

2.位运算不了解

首先我们回到开头,为什么将if判断语句改为是否与1相等就错了呢?在&运算中,是将值的目标位进行判断是否为1,如果该位为1则取1,否则取0.因为我知道目标位不相等直接取,所以我自然而然的认为相等则取1,则是错误的,即使相等也不为1.

三.体会总结

首先,开头的代码完整写法应为:

if((oled[x][y/8] &=1<<(y%8)!=0)

在使用if判断语句时,看括号内是否省略了!=0后缀,如果少了则要提醒自己一下有这个后缀.因为它并不是代表值为1时为

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/160163.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python项目之AI动物识别工具的设计与实现(django)

项目介绍&#xff1a; &#x1f495;&#x1f495;作者&#xff1a;落落 &#x1f495;&#x1f495;个人简介&#xff1a;混迹java圈十余年&#xff0c;擅长Java、小程序、Python等。 &#x1f495;&#x1f495;各类成品java毕设 。javaweb&#xff0c;ssm&#xff0c;spring…

自动泊车系统设计学习笔记

1 概述 1.1 自动泊车系统研究现状 目前对于自动泊车系统的研究方法通常有两种实现方式&#xff1a; 整个泊车操作可以分为四个阶段&#xff1a;第一阶段车辆向前行驶进行车位识别&#xff0c;第二阶段车辆行驶到准备泊车时的待泊车区域&#xff0c;第三阶段车辆按照规划好的…

uniapp(uncloud) 使用生态开发接口详情2(使用 schema创建数据, schema2code创建页面, iconfont 引入项目)

上一篇介绍如何创建项目,接下来该是如何使用 在项目中pages 目录下,新建界面 项目运行,浏览器中用账号密码登录, 新建一级和二级页面 2.1 系统管理 > 菜单管理 (新增一级界面) 2.2 找到刚刚创建的菜单, 操作行有 子菜单(点击) 用DB Schema创建页面, 3.1 在uniCloud > d…

[C国演义] 第十五章

第十五章 最长湍流子数组环绕字符串中唯⼀的⼦字符串 最长湍流子数组 力扣链接 子数组 ⇒ dp[i]的含义: 以arr[i] 结尾的所有子数组中的最长湍流子数组的长度 子数组 ⇒ 状态转移方程根据 最后一个位置来划分&#x1f447;&#x1f447;&#x1f447; 初始化: 都初始化为…

docker离线安装和使用

通过修改daemon配置文件/etc/docker/daemon.json来使用加速器sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-EOF {"registry-mirrors": ["https://ullx9uta.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo syste…

智能物联网解决方案:蓝牙IOT主控模块打造高效监测和超低功耗

物联网蓝牙模块&#xff0c;无论单模&#xff0c;还是双模&#xff0c;或者双模音频的选择&#xff0c;如下文说描述&#xff1a; 蓝牙芯片模块市场的百花齐放&#xff0c;也带来的工程师在选型时碰到很大的困难&#xff0c;但是无论是做半成品&#xff0c;还是做成品&#xf…

自动化的采集链接和自动推送必应的在线工具

搜索LMCJL在线工具 进入后点击站长工具类型&#xff0c;选择必应自动推送 进去后&#xff0c;添加域名&#xff0c;点击数据管理&#xff0c;输入必应的token 然后开启推送&#xff0c;就可以实现&#xff0c;自动化采集链接&#xff0c;自动推送给必应。 必应的站长后台官网…

jenkins整合gerrit

背景 公司项目之前使用jenkins整合了gitlab&#xff0c;后面代码迁移到gerrit&#xff0c;所以需要修改jenkins配置。下面就简单的介绍一下jenkins如何整合gerrit。 环境 服务器&#xff1a;linux 环境&#xff1a;docker、jenkins 代码仓库&#xff1a;gerrit 前提 docke…

大数据 DataX 数据同步数据分析入门

目录 一、DataX 概览 1.1 DataX 是什么 1.2 DataX 3.0 概览 设计理念 当前使用现状 二、DataX 详解 2.1 DataX 3.0 框架设计 2.2 DataX 3.0 插件体系 2.3 DataX 3.0 核心架构 2.3.1 核心模块介绍 2.3.2 DataX 调度流程 2.4 DataX 3.0 的六大核心优势 2.4.1 可靠的…

树叶识别系统python+Django网页界面+TensorFlow+算法模型+数据集+图像识别分类

一、介绍 树叶识别系统。使用Python作为主要编程语言开发&#xff0c;通过收集常见的6中树叶&#xff08;‘广玉兰’, ‘杜鹃’, ‘梧桐’, ‘樟叶’, ‘芭蕉’, ‘银杏’&#xff09;图片作为数据集&#xff0c;然后使用TensorFlow搭建ResNet50算法网络模型&#xff0c;通过对…

DVWA靶场Medium难度部分解析

前言 好久没做题&#xff0c;不想吹牛逼了&#xff0c;消停做点题QAQ Vulnerability: Command Injection 这题不咋难&#xff0c;老Ping题了 输个分号ls试试&#xff0c;没回显即被Ban了&#xff0c;试试别的&#xff0c;例如|或者&& 出了&#xff0c;看看源代码 把…

day01——禁用按钮和输入框等组件

1.代码展示 <button :disabled"true" click"printId">Print ID {{ resultId }}</button> 2.非禁用情况 <button :disabled"false" click"printId">Print ID {{ resultId }}</button> 3.禁用情况 <butt…

计算机算法分析与设计(11)---贪心算法(活动安排问题和背包问题)

文章目录 一、贪心算法概述二、活动安排问题2.1 问题概述2.2 代码编写 三、背包问题3.1 问题描述3.2 代码编写 一、贪心算法概述 1. 贪心算法的定义&#xff1a;贪心算法是指在对问题求解时&#xff0c;总是做出在当前看来是最好的选择。也就是说&#xff0c;不从整体最优上加以…

使用轮廓分数提升时间序列聚类的表现

我们将使用轮廓分数和一些距离指标来执行时间序列聚类实验&#xff0c;并且进行可视化 让我们看看下面的时间序列: 如果沿着y轴移动序列添加随机噪声&#xff0c;并随机化这些序列&#xff0c;那么它们几乎无法分辨&#xff0c;如下图所示-现在很难将时间序列列分组为簇: 上面…

day35

今日内容概要 Socket抽象层(socket编程) 基于TCP协议的借助socket可以编程客户端和服务端的程序 链接循环 通信循环 基于UDP协议的套接字(socket)编程 粘包现象 如何解决粘包现象(重要的是解决的思路) struct模块的使用(打包、解包) 今日内容详细 Socket抽象层&#x…

【Java学习之道】TCPIP套接字编程实例

引言 网络编程是Java学习中不可或缺的一部分&#xff0c;而TCP/IP套接字编程又是网络编程的基础。那么&#xff0c;初学者如何才能快速掌握TCP/IP套接字编程呢&#xff1f;今天我们就来通过一个简单的实例&#xff0c;为你揭示TCP/IP套接字编程的奥秘&#xff01; 一、什么是…

2023_Spark_实验十四:SparkSQL入门操作

1、将emp.csv、dept.csv文件上传到分布式环境&#xff0c;再用 hdfs dfs -put dept.csv /input/ hdfs dfs -put emp.csv /input/ 将本地文件put到hdfs文件系统的input目录下 2、或者调用本地文件也可以。区别&#xff1a;sc.textFile("file:///D:\\temp\\emp.csv&qu…

学信息系统项目管理师第4版系列29_信息系统治理

1. IT治理 1.1. 描述组织采用有效的机制对信息技术和数据资源开发利用&#xff0c;平衡信息化发展和数字化转型过程中的风险&#xff0c;确保实现组织的战略目标的过程 1.2. 驱动因素 1.2.1. 信息孤岛 1.2.2. 信息资源整合目标空泛 1.3. 高质量IT治理因素 1.3.1. 良好的I…

哈佛教授因果推断力作:《Causal Inference: What If 》pdf下载

因果推断是一项复杂的科学任务&#xff0c;它依赖于多个来源的三角互证和各种方法论方法的应用&#xff0c;是用于解释分析的强大建模工具&#xff0c;同时也是机器学习领域的热门研究方向之一。 今天我要给大家推荐的这本书&#xff0c;正是因果推断领域必读的入门秘籍&#…

UGUI交互组件InputField

一.InputField的结构 对象说明InputField挂有TextMeshPro-InputField组件的主体对象Text Area文本显示区Placeholder未输入时占位文本Enter text...Text输入的显示文本 二.InputField的属性 属性说明Text ViewportText Area子对象的引用Text ComponentText子对象的引用Text输入…