【算法】常见位运算总结

news/2024/10/17 19:31:41/

目录

  • 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 00 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 00 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.ppmy.cn/news/1103830.html

相关文章

nodejs+vue+elementui高校人事管理系统

总体设计 根据高校人事管理系统的功能需求&#xff0c;进行系统设计。 用户功能&#xff1a;用户进入系统可以实现首页、个人中心、职称申报管理、工资信息管理、绩效信息管理、奖惩信息管理、招聘管理等进行操作&#xff1b; 院长功能&#xff1a;院长进入系统可以实现首页、个…

使用tornado实现sse

sse SSE&#xff08;Server-Sent Events&#xff0c;服务器推送事件&#xff09;是一种用于在服务器和客户端之间建立单向持久连接&#xff0c;允许服务器实时向客户端推送数据的网络通信协议。SSE是基于HTTP协议的&#xff0c;它允许服务器不断地将事件消息发送到客户端浏览器…

Redis事务机制

Redis 是一款开源的、内存中的数据结构存储系统&#xff0c;它可以用作数据库、缓存和消息中间件。在日常的使用中&#xff0c;我们经常会遇到需要一次执行多个命令&#xff0c;并且这些命令要么全部成功&#xff0c;要么全部失败的场景。这就需要用到 Redis 的事务机制。 Redi…

【驱动开发】实现三盏灯的控制,编写应用程序测试

head.h #ifndef __HEAD_H__ #define __HEAD_H__//LED1:PE10 //LED2:PF10 //LED3:PE8#define LED_RCC 0X50000A28 //使能GPIO#define LED_MODER 0X50006000 //设置输出模式 #define LED_ODR 0X50006014 //设置输出高低电平#define LED2_MODER 0X50007000 …

粉底液、口红、睫毛膏,眼膜等护肤品和彩妆上架亚马逊需要做什么认证?HRIPT/RIPT测试,斑贴测试,COA认证和BCOP认证办理

亚马逊要求化妆、美容类睫毛膏、眼膜、足贴、假睫毛、洗发水、美甲套装等HRIPT / RIPTCOA测试&#xff0c;如果是眼睛这个部位使用的话 还需要出示BCOP认证 为了确保在使用产品或原料后不会产生潜在的刺激或过敏。亚马逊要求化妆品&#xff0c;美容产品&#xff0c;指甲胶等需…

Vue 组件中如何引入外部的js文件

Vue 组件中如何引入外部的js文件 背景 在Vue中&#xff0c;通常我们引入一个js插件都是使用npm 方式下载然后import使用的。但是我现在本地有了js文件或者是一个远程js文件链接&#xff0c;我不想使用npm install xxx 的方式&#xff0c;有什么办法吗&#xff1f; 方式一 简…

抖音小程序开发教学系列(5)- 抖音小程序数据交互

第五章&#xff1a;抖音小程序数据交互 5.1 抖音小程序的网络请求5.1.1 抖音小程序的网络请求方式和API介绍5.1.2 抖音小程序的数据请求示例和错误处理方法 5.2 抖音小程序的数据缓存和本地存储5.2.1 抖音小程序的数据缓存机制和使用方法5.2.2 抖音小程序的本地存储和数据持久化…

【深度学习】 Python 和 NumPy 系列教程(七):Python函数

目录 一、前言 二、实验环境 三、Python函数基础 1. 定义函数 2. 参数传递 3. 函数调用 4. 返回值 5. 函数文档字符串 四、将函数存储在模块中 1. 创建模块 2. 导入模块 a. import 模块名 b. from 模块名 import 函数名 c. from 模块名 import * 五、多种形式的…