备战蓝桥杯数学基础:位运算理论

位运算基于整数的二进制表示,包括按位与、或、异或、取反、左移和右移六种基本操作。与、或、异或涉及两数间的运算,异或具有自反性。取反是单目运算,对二进制数的每一位取反。左移和右移改变数字的二进制位位置,但要注意负数和移位过多的情况。位运算因其快速的计算速度在计算机科学中广泛应用。
摘要由CSDN通过智能技术生成

@[TOC](目录)

位运算概述

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

与、或、异或

这三者都是两数间的运算,因此这里就放在一起了

注意:1 :这里要区分逻辑与和 按位与逻辑或 和按位或的区别。

2:异或运算的逆运算是它本身,也就是说两次异或同一个数最后结果不变 例如a^b^b = a

相关例子:

5 = 101(二进制) 6 = (110)

5&6 = 100 (二进制)= 4

5|6 = 111(二进制) = 7

5^6 = 011(二进制) = 3

取反

取反是对一个数n进行的位运算,即单目运算

取反暂无默认的数学符号表示,其对应的运算符为 ~。它的作用是把 的二进制补码中的 和 全部取反( 变为 , 变为 )。有符号整数的符号位在 ~ 运算中同样会取反。

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

例子:

5=(000000101)二进制

-5=(11111010)二进制

-5的补码=(11111011)二进制

~(-5)=(00000100)二进制 = 4

左移和右移

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

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

11= (00001011)二进制

11 << 3 = (01011000)二进制 = 88

11 >> 2 =(00000010)二进制 = 2

注意:移位运算中如果有操作数为负值或右操作数大于等于左操作的位数,这些行为都是未定义的

例如:a<< -1 ,a>>32

位运算优先级

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

little Chen1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值