【算法】常见位运算总结

news2025/1/12 15:49:42

目录

  • 1.基础位运算
  • 2. 给一个数n,确定它的二进制表示中的第x位是0还是1
  • 3.将一个数n的二进制表示的第x位修改成1
  • 4.将一个数n的二进制表示的第x位修改成0、
  • 5. 位图的思想
  • 6.提取一个数(n)二进制表示中最右侧的1
  • 7.干掉一个数(n)二进制表示中最右侧的1
  • 8.位运算的优先级
  • 9.异或(^运算的运算律)

1.基础位运算

									0 1 0
									0 1 1
									-----
&:有0就是0							0 1 0
|:有1就是1							0 1 1
^:相同为0,相异为1  /无进位相加 		0 0 1

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

n: 0 1 1 0 1 0 1 0 0 1
结论:(n >> x) & 1

3.将一个数n的二进制表示的第x位修改成1

	0 1 1 0 1 0 1 0 0 1
|	0 0 0 0 0 1 0 0 0 0
->	0 1 1 0 1 1 1 0 0 1
结论:n |= (1 << x) 

4.将一个数n的二进制表示的第x位修改成0、

	0 1 1 0 1 0 1 0 0 1
&	1 1 1 1 0 1 1 1 1 1
->	0 1 1 0 0 1 1 0 0 1
结论:n &= (~(1 << x))

5. 位图的思想

本质:哈希表
在这里插入图片描述

6.提取一个数(n)二进制表示中最右侧的1

	0 1 1 0 1 0 1 0 0 0
~	1 0 0 1 0 1 0 1 1 1
+1	1 0 0 1 0 1 1 0 0 0
& 	0 1 1 0 1 0 1 0 0 0
	0 0 0 0 0 0 1 0 0 0
结论:n & -n

-n:本质就是将最右侧的1,左边的区域全部变成相反

7.干掉一个数(n)二进制表示中最右侧的1

	0 1 1 0 1 0 1 0 0 
& 	0 1 1 0 1 0 0 1 1 
	0 1 1 0 1 0 0 0 0 
结论:n & (n - 1)

(n - 1):将最右侧的1,右边的区域(包括1)全部变成相反

8.位运算的优先级

能加括号就加括号,最不容易出错!

9.异或(^运算的运算律)

1.a ^ 0 = a
2. a ^ a = 0
3. a ^ b ^ c = a ^ (b ^ c)

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

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

相关文章

瞄准热门需求:7个最受欢迎的跑腿小程序开发灵感

跑腿服务在如今快节奏的社会中扮演着重要角色&#xff0c;而跑腿小程序成为满足人们日常需求的利器。如果你正计划开发一款跑腿小程序&#xff0c;那么把握住最热门的需求绝对是成功的关键。在本文中&#xff0c;我作为跑腿小程序开发领域的专家&#xff0c;将分享七个最受欢迎…

【UIPickerView案例07-省市选择界面数据展示03-城市选择Bug修复 Objective-C语言】

一、咱们先把前面的内容捋一下——省市选择界面: 1.首先呢,我们说,实现一个案例,第一步,先看界面, 1)第一步:先看界面, 2)第二步:分析一下它的基本结构, 3)第三步:搭建界面, 4)第四步:加载数据, 5)第五步:显示数据, 是不是五步, 大的就这五步, …

SpringMVC文件上传与下载、JREBEL使用

目录 一、引言 二、文件的上传 1、单文件上传 1.1、数据表准备 1.2、添加依赖 1.3、配置文件 1.4、编写表单 1.5、编写controller层 2、多文件上传 2.1、编写form表单 2.2、编写controller层 2.3、测试 三、文件下载 四、JREBEL使用 1、下载注册 2、离线设置 一…

“文件的上传与下载:实现与优化“

目录 引言1.文件的上传2.文件的下载3. JRebel安装使用4. 文件批量上传总结 引言 在开发过程中&#xff0c;文件的上传与下载是常见的需求。本篇博客将以CSND为例&#xff0c;介绍文件上传与下载的常见方式&#xff0c;以及如何通过优化提升性能和用户体验。 1.文件的上传 使…

【Python算法Algorithm】专栏导读

1 什么是算法&#xff08;Algorithm&#xff09;&#xff1f; 算法是一组用于解决特定问题或执行特定任务的有序、精确的计算步骤的集合。它可以被认为是一种计算机程序&#xff0c;但更加抽象和数学化。 算法的主要目标是将输入数据转化为所期望的输出结果&#xff0c;而且要在…

华为云云耀云服务器L实例评测|一键部署,畅享高效华为云MySQL

本文目录 一、前言1、云耀云服务器L实例介绍2、产品优势 二、购买/使用1、首界面购买2、根据自己需求购买对应的3、购买成功过后返回首页面---》启动4、重置密码5、远程登录6、输入账户密码提示登陆成功7、为了方便拷贝安装命令&#xff0c;可以选择本地鼠标8、点击复制粘贴9、…

【Spring面试】五、Bean扩展、JavaConfig、@Import

文章目录 Q1、如何在Spring创建完所有的Bean之后做扩展&#xff1f;Q2、Spring容器启动时&#xff0c;为什么先加载BeanFactoryPostProcess?Q3、Bean的生产顺序是由什么决定的&#xff1f;Q4、Spring有哪几种配置方式Q5、JavaConfig是如何替代spring.xml的&#xff1f;Q6、Com…

InVideo AI:用人工智能轻松制作视频

简介&#xff1a; InVideo AI 是一款在线视频制作工具&#xff0c;使用人工智能来帮助用户快速、轻松地制作高质量的视频。该工具提供多种功能&#xff0c;包括&#xff1a; 链接&#xff1a; ai.invideo.io 仪表盘&#xff1a; 历史记录&#xff1a; 创建视频&#xff1a…

【Linux从入门到精通】信号(初识信号 信号的产生)

本篇文章会对Linux下的信号进行详细解释。主要内容是什么是信号、信号的产生、核心转储等问题。希望本篇文章会对你有所帮助。 文章目录 引入 一、初识信号 1、1 生活中的信号 1、2 Linux 下的信号 1、3 信号进程所得的初识结论 二、信号的产生 2、1 用户通过终端输入产生信号 …

2023年9月NPDP产品经理国际认证报名来这里就对了

产品经理国际资格认证NPDP是新产品开发方面的认证&#xff0c;集理论、方法与实践为一体的全方位的知识体系&#xff0c;为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会&#xff08;PDMA&#xff09;成立于1979年&#xff0c;是…

针对电子企业生产特征,提出MES管理系统解决方案

随着全球经济一体化的不断加剧&#xff0c;中国作为一个制造业大国&#xff0c;在电子组装、SMT贴片、PCB组装等领域取得了很大的突破&#xff0c;企业规模和数量随着不断增加&#xff0c;造成成本压力增加、产品生命周期缩短、设备日益复杂且缺少透明度以及不明需求预测&#…

SLAM从入门到精通(编写第一个package)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面我们安装了ROS环境&#xff0c;接着就可以开始进行ROS程序的开发了。在开发之前&#xff0c;我们有几个概念需要厘清一下。第一个是workspace&…

linux系统中LVM磁盘动态扩容方案

LVM动态扩展方案 信息确认&#xff1a; 磁盘空间确认 挂载磁盘的文件系统确认 lv卷组信息确认 1、确认磁盘已扩容&#xff1a;首先确认物理磁盘&#xff08;vdb&#xff09;已成功扩容至500G。 fdisk -l2、重新分区&#xff1a;将物理磁盘上多出的200G空间格式化为新的分区…

geopandas笔记:汇总连接两个区域的边

比如这样的两个区域&#xff0c;我们想知道从蓝到绿、从绿到蓝都有哪些边 1 读取openstreetmap import osmnx as ox import geopandas as gpdGox.graph_from_place(Singapore,simplifyTrue,network_typedrive)ox.plot_graph(G) 2 得到对应的边的信息 nodes,edgesox.graph_to_…

怎么在图片上编辑文字?这几种图片编辑工具了解下

在图片上编辑文字可以带来许多好处。首先&#xff0c;它可以更好地说明图片的内容和意义。有时候&#xff0c;一张图片可能不够清晰地传达想要表达的信息&#xff0c;但是通过在图片上添加文字说明&#xff0c;可以更好地让观众理解图片的意义。其次&#xff0c;编辑文字可以使…

AliExpress速卖通支付下单流程(测评补单优势及技术要点)

1. 打开全球速卖通官网,点击右上方的Join &#xff08;注册&#xff09;填写邮箱和密码&#xff0c;验证完毕后注册成功 2. 点击右上角的Account(账户)进入用户菜单 3. 点击导航了第一个My AliExpress&#xff08;我的速卖通&#xff09;选择左边My Shipping Address&#xff0…

VSCode自动分析代码的插件

今天来给大伙介绍一款非常好用的插件&#xff0c;它能够自动分析代码&#xff0c;并帮你完成代码的编写 效果如下图 首先我们用的是VSCode&#xff0c;&#xff08;免费随便下&#xff09; 找到扩展&#xff0c;搜索CodeGeeX&#xff0c;将它下载好&#xff0c;就可以实现了 到…

PathVariable注解

postman测试传参&#xff1a;http://localhost:8080/admin/employee/2 PathVariable PathVariable注解用法和作用

淘宝商品描述详细信息API接口

淘宝商品描述详细信息API接口是一个用于获取淘宝商品详细信息的API&#xff0c;通过它可以获取到商品的标题、价格、图片等信息。通过淘宝商品描述详细信息API接口&#xff0c;开发者可以方便地获取宝贝的相关信息&#xff0c;并将它们用于各种应用场景中。淘宝商品描述详细信息…

模板语言-Handlebars

Handlebars 是什么 Handlebars 是一种简单的模板语言。 它使用模板与传入的对象来生成HTML 或者其他文本格式。 Handlebars 模板看起来像是嵌入了handlebars 表达式的普通文本。 <p> {{firstname}} {{lastname}}</p> 一个handlebars表达式是使用两对尖括号包裹…