位运算_常见位运算总结

目录

1.基础位运算

2.给一个数n,确定它的二进制中第X位是0还是1

3.给一个数n,把它二进制中第X位是改为1

4.给一个数n,把它二进制中第X位是改为0

5.提取一个数n二进制最右侧的一个1

6.去除一个数n二进制最右侧的一个1

7.异或运算


1.基础位运算

>>:左移一位bit位

<<:右移一位bit位

~:按位取反 0变1 1变0

&:按位与 有0为0

|:按位或 有1为1

^:按位异或 相同为0 相异为1 /无进位相加

2.给一个数n,确定它的二进制中第X位是0还是1

(n>>x)&1 (下标从0开始)

#include <iostream>
using namespace std;bool checkBit(int num, int X) {return (num >> X) & 1;  // 右移X位并与1进行与运算
}int main() {int num = 10;  // 例子:10 的二进制是 1010int X = 1;     // 要检查第1位if (checkBit(num, X)) {cout << "第" << X << "位是1" << endl;} else {cout << "第" << X << "位是0" << endl;}return 0;
}

3.给一个数n,把它二进制中第X位是改为1

n | (1 << X) 

#include <iostream>
using namespace std;int setBit(int n, int X) {return n | (1 << X);  // 设置第X位为1
}int main() {int n = 10;  // 例子:10 的二进制是 1010int X = 1;   // 要设置第1位为1int result = setBit(n, X);cout << "设置第" << X << "位后的结果是: " << result << endl; // 结果将是 10 | 2 = 12(1100)return 0;
}

4.给一个数n,把它二进制中第X位是改为0

n & ~(1 << X)

#include <iostream>
using namespace std;int clearBit(int n, int X) {return n & ~(1 << X);  // 设置第X位为0
}int main() {int n = 10;  // 例子:10 的二进制是 1010int X = 1;   // 要设置第1位为0int result = clearBit(n, X);cout << "设置第" << X << "位后的结果是: " << result << endl; // 结果将是 10 & ~(2) = 8(1000)return 0;
}

5.提取一个数n二进制最右侧的一个1

n & -n 

-n对n的二进制先取反再+1

-n的二进制将最右侧的1,它的左边的区域全变反  再&导致左边全变0

6.去除一个数n二进制最右侧的一个1

n&(n-1)

(n-1)的二进制将最右侧的1,它和它的右边的区域全变反  再&导致最右侧1及它的右边全变0

7.异或运算

1.a^a=0

2.a^0=a

3.a^b^c=a^(b^c)  多个数相异或 即使运算顺序不同但值是不变的

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

SuperMap GIS基础产品FAQ集锦(20241111)

一、SuperMap iDesktopX 问题1&#xff1a;请问一下&#xff0c;桌面端想要导入TXT和EXCEL格式的坐标文件&#xff0c;有没有相应的模板参考? 11.2.0 【解决办法】用户可以通过 Excel 工具将*.xlsx,.xls,.xml等格式的属性数据转化成 .csv 格式数据&#xff0c;进而实现将纯属…

介绍一款支持折线法、保护角法和滚球法的避雷针插件

基于目前的研究和开发成果&#xff0c;我们实现了一款CAD插件&#xff0c;来实现避雷区域的绘制功能&#xff0c;我来详细介绍一下操作步骤&#xff0c;如果有需要可以私聊我。 界面 单击菜单栏 HL防雷计算>折线法&#xff0c;可加载上图工具栏。 按钮含义&#xff1a; 按钮…

FreeRTOS task 源码解析

目录 一、基本结构和变量1、TCB_t2、状态链表2.1 pxCurrentTCB2.2 pxReadyTasksLists2.3 pxDelayedTaskList2.4 xSuspendedTaskList 3、任务调度器相关3.1 xSchedulerRunning3.2 uxSchedulerSuspended3.3 xPendedTicks3.4 xPendingReadyList 4、任务删除相关4.1 xTasksWaitingT…

面试击穿mysql

Mysql三大范式: 第一范式&#xff08;1NF&#xff09;&#xff1a; 不符合第一范式的典型情况是在一个字段中存放多种不同类型的详细信息。例如&#xff0c;在商品表中&#xff0c;若将商品名称、价格和类型都存储在同一个字段中&#xff0c;会带来诸多弊端。首先&#xff0c;在…

日常bug记录,easyexcel导入报错convert data ... to class java.math.BigDecimal error

排查发现实体类中有BigDecimal属性&#xff0c;然而数据中这个属性为null&#xff0c;进行转换时报错 解决方法&#xff1a;自定义转换器类 在实体类上加上自定义转换器

【Python】Pygame实战:实现基础跑酷游戏机(附源码)

创建一个完整的“天天酷跑”游戏是一个相当复杂的任务&#xff0c;因为它涉及到多个游戏机制、图形资源、音效、用户交互等。不过&#xff0c;我可以为你提供一个非常简化的Python示例&#xff0c;使用Pygame库来模拟跑酷游戏的一些基本元素。这个示例将包括一个玩家角色、简单…

认识QT以及QT的环境搭建

认识QT 什么是QT&#xff1f; Qt 是⼀个 跨平台的 C 图形⽤⼾界⾯应⽤程序框架 。 认识客户端 现在我们所说的客户端开发其实大致分为三种&#xff1a; 1.网页前端开发。 2.桌面应用开发&#xff08;电脑的应用层序&#xff09; 3.移动应用开发。 而我们的QT的主战场就是在…

[ARM-2D 专题]6.脏矩形定义的宏使用技巧和分析

ARM-2d之所以能够高效的进行屏幕绘制&#xff0c;脏矩形的使用起到了巨大作用&#xff0c;功不可没。 简单介绍一下何谓脏矩形&#xff1a; 详细可以参考&#xff1a;如何用脏矩形优化显示帧率 在一帧画面的绘制的时候&#xff0c;我们只绘制画面中变化的部分&#xff0c;可以…

【网页设计】CSS 高级技巧

目标 能够使用精灵图能够使用字体图标能够写出 CSS 三角能够写出常见的 CSS 用户界面样式能够说出常见的布局技巧 1. 精灵图 为什么需要精灵图&#xff1f;精灵图的使用精灵图课堂案例 1.1 为什么需要精灵图&#xff1f; 一个网页中往往会应用很多小的背景图像作为修饰&…

数据结构——二叉树和BST

树与二叉树 基本概念 树是一种非线性结构&#xff0c;其严格的数学定义是&#xff1a;如果一组数据中除了第一个节点&#xff08;第一个节点称为根节点&#xff0c;没有直接前驱节点&#xff09;之外&#xff0c;其余任意节点有且仅有一个直接前驱&#xff0c;有零个或多个直接…

openGauss常见问题与故障处理(一)

大家好&#xff0c;欢迎大家收看本文。 对于初学者入门的学习&#xff0c;一些理论不容易理解或记住&#xff0c;所以本节课程【创新】采用了【正、反对比联想记忆】的方法&#xff0c; 引入模拟场景中的肖荏盖的小故事。&#xff08;模拟场景为虚构演绎&#xff0c;仅供教学&…

计算机辅助几何设计:曲线曲面基础知识

参数化表示 空间曲线曲面常用参数化表示&#xff0c;即&#xff1a; x x ( u ) , y y ( u ) , z z ( u ) xx(u),yy(u),zz(u) xx(u),yy(u),zz(u)。用位置矢量形式表示就是 p p ( u ) pp(u) pp(u)&#xff0c;其中参数u可能有意义&#xff0c;也可能没有意义&#xff0c;例如…

TF-Grasp论文学习笔记

当 Transformer 遇到机器人抓取时&#xff1a;利用上下文进行有效的抓取检测 摘要 在这篇论文中&#xff0c;我们提出了一个基于transformer结构的用于机器人抓取的网络&#xff0c;我们将其命名为TF-Grasp。TF-Grasp网络架构有两个重要的设计&#xff0c;这使其可以对于视觉抓…

剪绳子(math)-acwing

题目&#xff1a; AcWing 25. 剪绳子 - AcWing 代码 主要是处理末尾端几个2&#xff0c;其余都是3&#xff0c;这样相乘能最大&#xff0c;因为4可以分为2*2&#xff0c;3不能分&#xff0c;然后5也没有3*2大&#xff0c;6也没有3*3大。 总之2*2没有3*3大&#xff0c;所以6不…

Scrapy爬取heima论坛所有页面内容并保存到数据库中

前期准备&#xff1a; Scrapy入门_win10安装scrapy-CSDN博客 新建 Scrapy项目 scrapy startproject mySpider03 # 项目名为mySpider03 进入到spiders目录 cd mySpider03/mySpider03/spiders 创建爬虫 scrapy genspider heima bbs.itheima.com # 爬虫名为heima &#…

基于SpringBoot的垃圾分类回收系统+LW示例参考

1.项目介绍 系统角色&#xff1a;管理员、普通用户、回收员功能模块&#xff1a;管理员&#xff08;用户管理、回收员管理、垃圾类型管理、商品分类管理、环保商城管理、上门回收管理、订单分配管理、订单管理、系统管理等&#xff09;、回收员&#xff08;订单分配、订单管理…

华为入围Linux 内核CVE 检视“五人团”,openEuler要再进阶?

背景&#xff1a;内核社区接管 Linux 社区漏洞发布 往年 Linux 内核漏洞发布存在来源不固定、覆盖不全面&#xff0c;有时发布无修复补丁的 CVE 从而形成 0-day 漏洞等问题&#xff0c;给 Linux 内核安全带来了不确定性&#xff0c;为了更规范化运作&#xff0c;2024 年 2 月 1…

JS爬虫实战之TikTok_Shop验证码

TikTok_Shop验证码逆向 逆向前准备思路1- 确认接口2- 参数确认3- 获取轨迹参数4- 构建请求5- 结果展示 结语 逆向前准备 首先我们得有TK Shop账号&#xff0c;否则是无法抓取到数据的。拥有账号后&#xff0c;我们直接进入登录。 TikTok Shop 登录页面 思路 逆向步骤一般分为…

同等学力申硕国考只考一门的专业有哪些?

同等学力申硕国考英语&#xff0c;英语不考听力&#xff0c;若进行考前有效辅导&#xff0c;英语单科通过率可以较大幅度提高。相对其他非全日制研究生和全日制研究生而言&#xff0c;考试科目少了&#xff0c;总分少&#xff0c;复习量也相对少&#xff0c;比较适合在职人员报…

烟火识别软件LiteAIServer视频智能分析平台支持烟雾检测算法

随着科技的不断发展&#xff0c;安防管理平台在企业和机构中的应用日益广泛。烟火识别软件LiteAIServer集成了视频监控、报警系统等多种安防功能&#xff0c;为用户提供了一站式解决方案。 烟雾检测是在安防已经落地的AI算法 &#xff0c;主要应用于&#xff1a;厂区、森林、仓…