「算法」常见位运算总结

位运算符

  • 异或
    按位异或可以实现无进位相加,所谓无进位相加,就是在不考虑进位的情况下将两个数相加(后面有道题需要用到这种操作)
    在这里插入图片描述

异或的运算律
①a ^ 0 = a
②a ^ a = 0
③a ^ b ^ c = a ^ ( b ^ c )

  • 有符号右移>>
    将一个数的所有位向右移动指定的位数,最高位用符号位填充
  • 无符号右移>>>
    也是右移,不过最高位用0填充

基操

背景:给一个数 n,我们设它二进制表示的最低位的下标是 0

  • 确定 n 二进制表示的第 x 位是0还是1
    将 n 右移 x 位,然后和 1 按位与,若为 0,则第 x 位为0;反之为 1

  • 将 n 的第 x 位修改成 1
    将 1 左移 x 位,然后和 n 按位或

  • 将 n 的第 x 位修改成 0
    将 1 左移 x 位,然后和 n 按位异或

lowbit:提取一个数二进制中最右侧的1

这是一个很巧妙的操作,本质是将最右侧的 1 左边的区域全变成相反
操作:n ^ (-n)

去除最右侧的1

操作:n & ( n - 1 )
本质:将最右侧的1右侧的区域(包括1)全部变成相反

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

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

相关文章

IDEA切换 Springboot初始化 URL

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 往期热门专栏回顾 专栏…

Android基础控件介绍

在Android应用程序开发中,使用基础控件是非常常见的。这些控件允许您在用户界面中显示文本、图像、按钮等元素,以及接收用户输入。本文将介绍几种常见的基础控件,并给出每个控件在示例XML中使用的属性的详细说明。 1. TextView TextView 是…

云计算 2月20号 (认识操作系统)

1、认识操作系统 计算机系统的组成 知识点1:没有软件系统的计算机称之为"裸机" 知识点2:裸机提供基本的可计算性资源 知识点3:操作系统是最靠近硬件的软件层,负责管理和控制计算机硬件。 计算机硬件组成五大部件 运算器…

Chat GPT:智能对话的下一步

Chat GPT:智能对话的下一步 介绍 Chat GPT(Generative Pre-trained Transformer)是一种基于Transformer架构的强大对话模型,可以产生自然流畅的回答,并实现人机对话的感觉。本文将探讨Chat GPT在智能对话领域的影响和…

代码随想录算法刷题训练营day29:LeetCode(491)递增子序列、LeetCode(46)全排列、LeetCode(47)全排列 II

代码随想录算法刷题训练营day29:LeetCode(491)递增子序列、LeetCode(46)全排列、LeetCode(47)全排列 II LeetCode(491)递增子序列 题目 代码 import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashSet; im…

2024年AI全景预测

欢迎来到 2024 年人工智能和技术的可能性之旅。 在这里,每一个预测都是一个潜在的窗口,通向充满创新、变革、更重要的是类似于 1950 年代工业革命的未来。 20 世纪 50 年代见证了数字计算的兴起,重塑了行业和社会规范。 如今,人工…

老卫带你学---leetcode刷题(242. 有效的字母异位词)

242. 有效的字母异位词 问题 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。 示例 1: 输入: s “anagram”, t “nagaram” 输出: t…

力扣1143. 最长公共子序列(动态规划)

Problem: 1143. 最长公共子序列 文章目录 题目描述思路复杂度Code 题目描述 思路 我们统一标记:str1[i]代表text1表示的字符数组,str2[j]代表text2表示的字符数组;LCS代表最长的公共子序列;(我们易得只有str1[i]和str…

Flutter中Widget的生命周期

Widget生命周期: createState-initState-didChangeDependency-build-deactive-dispose 可通过WidgetsBinding类对widget生命周期的回调进行监控。 createState:StatefulWidget 中用于创建 State; initState:State 的初始化操作&am…

CLion远程调试C++

文件映射到 可以右键文件夹选择重新Cmake 编译

xsslabs第七关

源码 <!DOCTYPE html><!--STATUS OK--><html> <head> <meta http-equiv"content-type" content"text/html;charsetutf-8"> <script> window.alert function() { confirm("完成的不错&#xff01;"…

【刷题】Leetcode 1609.奇偶树

Leetcode 1609.奇偶树 题目描述广度优先搜索&#xff08;BFS&#xff09;深度优先算法&#xff08;DFS&#xff09; 思路一&#xff08;BFS&#xff09;思路二&#xff08;DFS&#xff09;Thanks♪(&#xff65;ω&#xff65;)&#xff89;谢谢阅读&#xff01;&#xff01;&a…

ShardingSphere Narayana XA 事务不回滚问题定位

ShardingSphere Narayana XA 事务不回滚问题定位 问题背景 用户反馈&#xff0c;在使用 ShardingSphere Narayana 执行 XA 事务时&#xff0c;发生报错&#xff1a;java.sql.SQLException: javax.transaction.RollbackException: TransactionImple.enlistResource - ARJUNA0…

数字后端——DEF文件格式

文章目录 MACRO的不同orientationDEF中在macro orientation定义前需要留空格 MACRO的不同orientation DEF中在macro orientation定义前需要留空格 像下图中这种方向和分号之间没有空格的情况&#xff0c;就是有问题的格式。

C语言清空文件夹、C语言判断文件夹下的文件夹是否存在,如果存在就清空,如果不存在则建立

代码解法不唯一&#xff0c;请在评论区留下你的实现方式和想法&#xff0c;我会将好的解法更新到文章中&#xff01;&#xff01; 要在C语言中判断文件夹下的文件夹是否存在&#xff0c;如果存在就清空&#xff0c;如果不存在则建立&#xff0c;需要使用C标准库中的系统调用或…

数学学习与研究杂志社《数学学习与研究》杂志社编辑部2023年第29期目录

考试研究 提高高三数学二轮复习质量的思考与实践 佘淮青; 2-4 提升高三数学复习质量的策略探究 王飞; 5-7 核心素养背景下的高中数学命题策略研究 陈明发; 8-10 提升中考数学复习课的有效性研讨 韩兴宏; 11-13 中学教学方法《数学学习与研究》投稿&#xff1a;…

将c、c++变为python

1.编写cpp文件 #include "pycpp.h" #include <iostream>using namespace std;PyCpp::PyCpp(){}void PyCpp::sayHello(int a){cout << "Hello Python, I am C."<<a << endl; }2.编写头文件&#xff08;声明变量&#xff09; clas…

SpringBoot之自定义Redis缓存key的生成策略配置

SpringBoot之自定义Redis缓存key的生成策略配置 文章目录 SpringBoot之自定义Redis缓存key的生成策略配置1. SpringBoot版本2. Redis缓存配置类 自定义缓存key生成策略&#xff1b;key与value的序列化&#xff1b;key过期配置管理器 1. SpringBoot版本 <parent><group…

pyuic生成py文件到指定文件夹

pyuic生成py文件到指定文件夹 关于如何在pycharm配置外部工具的方法这里不做赘述&#xff0c;本文主要说明&#xff0c;如何利用pyuic将ui文件生成到指定的项目目录中。 前提条件&#xff1a;已配置的pyuic工具可以正常使用生成文件到目录中。 一、打开外部工具配置页面 打开…

如何用Python检查时间序列数据是否平稳?

时间序列数据通常以其时间性质为特征。这种时间性质为数据增加了趋势或季节性&#xff0c;使其与时间序列分析和预测兼容。如果时间序列数据不随时间变化或没有时间结构&#xff0c;则称其为静态数据。因此&#xff0c;检查数据是否平稳是非常必要的。在时间序列预测中&#xf…