如何理解位运算

简介: 位运算基础

位运算:

位运算就是基于整数的二进制表示进行的运算。由于计算机内部就是以二进制来存储数据,位运算是相当快的。基本的位运算共 6种,分别为按位与、按位或、按位异或、按位取反、左移和右移。

与,或,异或

运算 运算符 运算逻辑
与 & 只有两个对应位都为 1时才为 1
或 | 只要两个对应位中有一个 1时就为 1
异或 ^ 只有两个对应位不同时才为 1
tip:异或运算的逆运算是他本身 e.g. a^b^b=a;

取反

取反是对一个数 进行的位运算,即单目运算.它是将数的二进制补码中的0和1取反,符号为~.

补码

在二进制表示下,正数和 的补码为其本身,负数的补码是将其对应正数按位取反后加一。

int lowbit(int i){

    return i&(-i);

}

左移和右移

num << i 表示将 num 的二进制表示向左移动 i 位所得的值。

num >> i 表示将 num 的二进制表示向右移动 i 位所得的值。

运算优先级

位运算的优先级低于算术运算符(除了取反),而按位与、按位或及异或低于比较运算符,所以使用时需多加注意,在必要时添加括号。

相关文章
|
安全 数据安全/隐私保护 芯片
微信读书电脑版,来了!
微信读书电脑版,来了!
|
人工智能 开发者
大模型工具链之FunctionCall实战教学
【10月更文挑战第15天】在人工智能领域,大模型工具链的构建和应用日益重要。FunctionCall作为一种高效工具链,允许开发者在复杂模型中实现函数调用,提高模型的灵活性和可扩展性。本文探讨了FunctionCall的实际应用,并提供了实战教学,涵盖基本语法、工作原理及复杂功能的实现,如条件语句、循环控制和自定义操作。通过具体示例,展示了如何使用FunctionCall构建清晰、可维护的模型结构。
1633 2
|
机器学习/深度学习 移动开发 JavaScript
Web实时通信的学习之旅:SSE(Server-Sent Events)的技术详解及简单示例演示
Web实时通信的学习之旅:SSE(Server-Sent Events)的技术详解及简单示例演示
5987 0
|
Ubuntu Shell 数据库
在Ubuntu 14.04上安装和配置Mumble服务器(Murmur)的方法
在Ubuntu 14.04上安装和配置Mumble服务器(Murmur)的方法
349 0
|
存储 人工智能 算法
自媒体影视后期数字助理3--绿幕分割中间件设计
阿里云提供的线上AI能力在处理视觉信息方面已经有较为成熟和通用的产品,对于开始兴建媒体资源管理平台的自媒体来说,采用阿里云的AI能力、函数计算以及OSS等产品进行平台搭建可以快速实现建设与能力扩充。本文为SDR与HDR中间件的开发思路、技术架构设计和开发实战中参数的设置介绍,对一些数字影像的基础概念和阿里云视觉人工智能的API细节进行了分析。
854 91
自媒体影视后期数字助理3--绿幕分割中间件设计
|
图形学
【实现100个unity特效】shader实现3D物品闪光和描边效果
【实现100个unity特效】shader实现3D物品闪光和描边效果
505 0
|
Java Maven Spring
SpringBoot运行出现 Lookup method resolution failed; nested exception is java.lang.IllegalStateException
SpringBoot运行出现 Lookup method resolution failed; nested exception is java.lang.IllegalStateException
3642 0
|
自然语言处理 安全 算法
23REPEAT方法:软工顶会ICSE ‘23 大模型在代码智能领域持续学习 代表性样本重放(选择信息丰富且多样化的示例) + 基于可塑权重巩固EWC的自适应参数正则化 【网安AIGC专题11.22】
23REPEAT方法:软工顶会ICSE ‘23 大模型在代码智能领域持续学习 代表性样本重放(选择信息丰富且多样化的示例) + 基于可塑权重巩固EWC的自适应参数正则化 【网安AIGC专题11.22】
593 0
23REPEAT方法:软工顶会ICSE ‘23 大模型在代码智能领域持续学习 代表性样本重放(选择信息丰富且多样化的示例) + 基于可塑权重巩固EWC的自适应参数正则化 【网安AIGC专题11.22】
vs code 安装通义灵码 网络连接失败
vs code 安装通义灵码时 无法访问 127.0.0.1:37510 网站