c++位运算符笔记

1.左移就是乘2

(1)要防止爆int(比如2的n次方写成1LL<<n)

2.右移就是整除2(向下取整)

(1)对于无符号数左边补零对有符号数左边补符号位(其实就是左边原本是什么,我们就补什么)

(2)注意是算数右移(对于大多数编辑器)不是逻辑右移,是向下取整不是向零取整,比如-5>>1为-3,5>>1为2

3.按位与就是全真为1,用来查询(看某一位在不在)

4.按位或就是有真即1,用来设置(把某一位强行变1)

(1)比如我让x与二进制下后四位全为一的数进行按位或,那x的二进制下后四位就会变成一

5.按位异或就是不同为1,用来翻转(把不同的反过来)

(1)不进位的加法(就像小学的竖式加法,只是把10进制变成二进制而已)

a^a=0

a^0=a

(2)用法变量交换

a=a^b
b=a^b
a=a^b

6.按位取反就是所有为反转(连同符号位)

(1)~5 = -6

~0 = -1

相关推荐
zjjsctcdl17 小时前
java与mysql连接 使用mysql-connector-java连接msql
java·开发语言·mysql
老约家的可汗17 小时前
list 容器详解:基本介绍与常见使用
c语言·数据结构·c++·list
Moe48818 小时前
WebSocket :从浏览器 API 到 Spring 握手、Handler 与前端客户端
java·后端·架构
顶点多余18 小时前
线程互斥+线程同步+生产消费模型
java·linux·开发语言·c++
Albert Edison18 小时前
【ProtoBuf 语法详解】更新消息|保留字段|未知字段
开发语言·c++·protobuf
丝斯201118 小时前
AI学习笔记整理(79)——Python学习8
人工智能·笔记·学习
⑩-18 小时前
Java基础+集合框架-八股文
java·开发语言
福运常在18 小时前
股票数据API(19)次新股池数据
java·python·maven
Zaki_gd18 小时前
Cortex-M7 D-Cache 与 DMA 缓存一致性说明
java·spring·缓存
多看书少吃饭18 小时前
Vue3 + Java + Python 打造企业级大模型知识库(含 SSE 流式对话完整源码)
java·python·状态模式