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

相关推荐
Hx_Ma162 小时前
测试题(一)
java
枫叶丹42 小时前
【Qt开发】Qt界面优化(四)-> Qt样式表(QSS) 选择器概况
c语言·开发语言·c++·qt
w***29852 小时前
Knife4j文档请求异常(基于SpringBoot3,查找原因并解决)
java·服务器·数据库
yaoxin5211233 小时前
325. Java Stream API - 理解 Collector 的三大特性:助力流处理优化
java·开发语言
0 0 09 小时前
CCF-CSP 39-2 水印检查(watermark)【C++】
c++·算法
plus4s9 小时前
2月15日(78,80,81题)
c++·算法·图论
RFG201210 小时前
20、详解Dubbo框架:消费方如何动态获取服务提供方地址?【微服务架构入门】
java·人工智能·后端·微服务·云原生·架构·dubbo
zjttsh11 小时前
Linux下安装Redis
java
TimberWill11 小时前
SpringBoot整合Srping Security实现权限控制
java·spring boot·后端