二进制位运算小结

①按位与&

两位全为1,结果才为1

特殊用法

1)清零

如果想将一个单元清零,即使其全部二进制位为0,只要与一个各位都为0的数值做与运算,结果为0.

例如X=10101001  

X&00000000=00000000

取一个数中指定位

例如:设X为10101110,取X的低4位

X&00001111=00001110

②按位或|

只要有一个为1,结果就为1

0|1=1    1|1=1

例如51|5

拆解为00110011|00000101=00110111

51|5=55

特殊用法

常用来对一个数据的某些位置1

设X=1010000,低四位置1

X|00001111=10101111

③异或运算^

不同为1,相同为0

特殊用法

1)使特定位翻转,要翻转的位对应为1,不需要的为0

设X=10101110,使X的低四位翻转

X^00001111=10100001

2)与0异或保留原值

X^00000000=10101110

3)变量交换值

A=A^B

B=A^B

A=A^B

④取反运算~

对一个二进制数按位取反

⑤左移运算<<

将一个二进制对象的各二进制位左移若干位(左边丢弃,右边补0)

若左移舍弃的高位不包含1,则每左移一位相当于乘以2

⑥右移运算>>

将一个二进制对象的各二进制位右移若干位(正数左补0,负数左补1,右边舍弃)

⑦无符号右移>>>

将一个二进制对象的各二进制位右移若干位(左边补0,右边舍弃)

⑧负数

负数以正数的补码形式表示

原码:一个数按照绝对值大小的二进制数

例如00000000 00000000 00000000 00001110为14的原码

反码:二进制数按位取反

例如:11111111 11111111 11111111 11110001位14的反码

补码:反码+1

11111111 11111111 11111111 11110001+1=11111111 11111111 11111111 11110010

即为-14

-14<<2=

11111111 11111111 11111111 11001000

取补码的原码对应的正值,取相反数即可

原码00000000 00000000 00000000 00111000

即-56

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值