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

相关推荐
xixingzhe28 分钟前
idea启动vue项目
java·vue.js·intellij-idea
wzl2026121335 分钟前
企业微信定时群发技术实现与实操指南(原生接口+工具落地)
java·运维·前端·企业微信
yolo_guo35 分钟前
redis++使用: hmset 与 hmget
c++·redis
凌波粒39 分钟前
Java 8 “新”特性详解:Lambda、函数式接口、Stream、Optional 与方法引用
java·开发语言·idea
曹牧1 小时前
Eclipse:悬停提示(Hover)
java·ide·eclipse
三棱球1 小时前
App逆向学习笔记(三)——Android开发入门课
android·笔记
oyzz1201 小时前
Spring EL 表达式的简单介绍和使用
java·后端·spring
handler011 小时前
拒绝权限报错!三分钟掌握 Linux 权限管理
linux·c语言·c++·笔记·学习
iNgs IMAC2 小时前
Redis之Redis事务
java·数据库·redis
程序员小假2 小时前
向量检索的流程是怎样的?Embedding 和 Rerank 各自的作用?
java·后端