位运算:与&,或|,异或^,同或⊙,左移<<,右移>>,取反~

3=00000011
5=00000101

1.与
1&1=1,1&0=0,0&0=0
即:两个1为1,其他都是0
例:3 & 5 =00000001
2.或
1|1=1,1|0=1,0|0=0
即:两个0为0,其他都是1
例:3 | 5=00000111
3.异或
1 ^ 1 = 0, 0 ^ 0 = 0,1 ^ 0 =1
即:相同为0,不同为1
例:3 ^ 5=00000110
或者按照不进位的加法计算

应用:交换a和b的值---a=a^b,b=a^b,a=a^b

4.同或
1⊙0=0,1⊙1=1,0⊙0=1
即:相同为1,不同为0

注:c语言中无同或表示的符号,可用~(a^b)表示ab的同或

5.左移
5<<2,表示5转换为二进制数后向左移动两位,如果高位处越位(一般32位,本篇均按8位计算),较高位丢弃,较低位补0,如5=00000101,5<<2=00010100=20,即5 * 22
公式:n<<m=n* 2m
6.右移
5>>2,表示5转换为二进制数后向右移动两位,低位丢弃,高位补0,如5=00000101,5>>2=00000001=1,即5/(22)向左取整
公式:n>>m=n/2m
7.取反
5=00000101,~5=11111010

位运算优势:直接操作二进制数,速度快,省内存
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值