首页 > 其他分享 >【二进制】位运算:与、或、异或、取反、左移、右移

【二进制】位运算:与、或、异或、取反、左移、右移

时间:2024-07-29 13:55:16浏览次数:13  
标签:右移 0000 运算 示例 二进制位 左移 取反 异或

概述

计算机对二进制数据进行的运算(如加、减、乘、除)被称为位运算,即对二进制数的每一位进行操作的运算

说明

符号 描述 运算规则
& 两个位都为1时,结果才为1
| 两个位都为0时,结果才为0
^ 异或 两个位相同为0,相异为1
~ 取反 0变1,1变0
<< 左移 各二进位全部左移若干位,高位丢弃,低位补0
>> 右移 各二进位全部右移若干位,高位补0或符号位补齐

运算

按位与 运算

对参与运算的两个数据的二进制位进行"与"运算

运算规则:1 & 1 = 1,否则=0 <只有两位同时为1时,结果才为1,否则结果为0>

示例:

3 & 5 转换成二进制,按位运算,如下
0000 0011 & 0000 0101
= 0000 0001
∴ 3&5=1

按位或 运算

对参与运算的两个对象的二进制位进行"或"运算

运算规则:0 & 0 = 0,否则=1 <只要有一个为1,其值为1>

示例:

3 & 5 转换成二进制,按位运算,如下
0000 0011 | 0000 0101
= 0000 0111
∴ 3|5=7

异或 运算

对参与运算的两个数据的二进制位进行"异或"运算

运算规则:0 ^ 0 = 0,0 ^ 1 = 1,1 ^ 0 = 1, 1 ^ 1 = 0 <相应位相同为0,相异为1>

示例:

3 & 5 转换成二进制,按位运算,如下
0000 0011 ^ 0000 0101
= 0000 0110
∴ 3^5=6

取反 运算

对参与运算的一个数据的二进制位进行"取反"运算

运算规则:~1 = 1111 1110 ,~0 = 1111 1111 <将 0 变 1,1 变 0>

示例:

~1 = -2
~0 = -1

左移运算

将一个运算对象的各二进制位全部左移若干位,高位丢弃,低位补0

示例:

a = 1010 1110
a = a << 2  (将 a 的二进制位左移2位、右补0)
a = 1011 1000

右移运算

将一个数的各二进制位全部右移若干位,高位补0或补符号位,右边丢弃

示例:

a = 1010 1110
a = a >> 2 (将 a 的二进制位右移2位,左补0 或补符号位,具体取决于数的正负)
a = 0010 1011

复合赋值运算符

位运算符与赋值运算符结合,组成新的复合赋值运算符

&= 例:a &= b 相当于 a = a & b
|= 例:a |= b 相当于 a = a | b
>>= 例:a >>= b 相当于 a = a >> b
<<= 例:a <<= b 相当于 a = a << b
^= 例:a ^= b 相当于 a = a ^ b

标签:右移,0000,运算,示例,二进制位,左移,取反,异或
From: https://www.cnblogs.com/phoenixy/p/18329611

相关文章

  • LeetCode1005. K 次取反后最大化的数组和
    题目链接:https://leetcode.cn/problems/maximize-sum-of-array-after-k-negations/description/题目叙述:给你一个整数数组nums和一个整数k,按以下方法修改该数组:选择某个下标i并将nums[i]替换为-nums[i]。重复这个过程恰好k次。可以多次选择同一个下标i。以这种......
  • 无字母RCE绕过(取反,异或,自增,通配符)
    原理参考:无数字字母rce总结(取反、异或、自增、临时文件)-CSDN博客RCE篇之无数字字母rce-学安全的小白-博客园(cnblogs.com)RCE通配符绕过-CSDN博客以下是我的个人理解及例题1.取反例题:[SWPUCTF2021新生赛]hardrce|NSSCTF取反用法就是对我们想要执行的语句通过......
  • 280:vue+openlayers 自定义上下左右移动键
    作者:还是大剑师兰特,曾为美国某知名大学计算机专业研究生,现为国内GIS领域高级前端工程师,CSDN知名博主,深耕openlayers、leaflet、mapbox、cesium,canvas,echarts等技术开发,欢迎加微信(gis-dajianshi),一起交流。查看本专栏目录-本文是第280个示例文章目录一......
  • 异或与乘积(又是一道数学)
    Tomoyuki-Mizuyama有一个\(n\)(\(2\len\le10^5\))个数的序列。现在他想做若干次操作,每次选择两个数,把他们异或起来,之后删除这两个数,并把他们异或后的结果加入序列。他进行若干次操作后,会把序列中剩下的数全部乘起来。他想知道最后的结果最大是多少。注意,Tomoyuki-Mizuyama最多......
  • 异或运算(XOR)的可交换性证明
    异或运算(XOR)的可交换性是指:若\(a\oplusb=c\),那么有\(a\oplusc=b\)且\(b\oplusc=a\)证明:不失一般性,我们只需证明第一个等式\(a\oplusc=b\)。首先:按位异或运算有以下几个重要性质:交换律:\(a\oplusb=b\oplusa\)结合律:\(a\oplus(b\oplusc)......
  • 代码随想录算法训练营第30天 | 贪心算法 2: 122.买卖股票的最佳时机II、55. 跳跃游戏
    代码随想录算法训练营第30天|贪心算法2:122.买卖股票的最佳时机II、55.跳跃游戏、45.跳跃游戏II、1005.K次取反后最大化的数组和122.买卖股票的最佳时机IIhttps://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii/description/代码随想录https://programmerca......
  • 代码随想录day 29 买卖股票的最佳时机II | 跳跃游戏 | 跳跃游戏II | K次取反后最大化
    买卖股票的最佳时机II买卖股票的最佳时机II解题思路利用贪心算法,只要股票卖了后一天能获利,就买了,所以只要遍历一下整个数组,根据这个算法就能得到最终获利的数目知识点贪心心得歪打正着的一题跳跃游戏跳跃游戏解题思路利用贪心算法,只需要有一次跳转到数组之外说明就能跳......
  • NC275631 嘤嘤不想求异或喵,NC274492 76与61,NC273546 小红的数组移动
    目录NC275631嘤嘤不想求异或喵题目描述运行代码代码思路ff 函数解释:主函数解释:NC27449276与61题目描述运行代码代码思路函数 countSubsequences 的工作原理:举例说明:NC273546小红的数组移动题目描述运行代码代码思路嘤嘤不想求异或喵题目描述登录—专......
  • 黑球白球巧妙异或问题
    题目:一个桶里一共有a个白球和b个黑球。每次拿出2个球,并且每个球被拿出的概率相等。如果拿出一黑一白,就往桶里放进一个黑球;如果拿出两个黑或者两个白,就往桶里放进一个白球。求:最后只剩一个黑球的概率是多少? 答案:如果黑球个数是偶数,最后剩下为黑球的概率是0%......
  • 异或二分法盲注脚本分享
    异或二分法盲注脚本#-*-coding:utf-8-*-importrequestsimporttime#目标urlhost="http://localhost/sqli-labs-master/Less-5/?id="#获取数据库名defget_database():globalhostans=''foriinrange(1,......