位运算

位运算

作用于整数类型的运算对象,对二进制数位进行运算。

位与:& 当且仅当两个运算对象都为1时,该位为1

1&1=1
1&0=0
0&1=0
0&0=0
例:255&128=128

位或:|当且仅当两个运算对象都为0时,该位为0

1|1=1
1|0=1
0|1=1
0|0=0
例:255|128=255

位取反:~将1置为0,将0置为1

~1=0
~0=1
例:~128=127

左移:<<

将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。
左边二进制位丢弃不包括1时, 左移1位相当于乘以2。
例:3(11)<<2=12(1100)

右移:>>

将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。
右移1位相当于除以2(整数除法)。
例:7(111)>>1=3(11)

位运算的性质

x^x=0:自己与自己异或一定为1


操作x的第j位(从左向右数,最右边是第0位):
x|(1<<j):将x的第j位设置为1
x&~(1<<j):将x的第j位设置为0
x^(1<<j):将x的第j位取反
(x>>j)&1:取x的第j位


a=b=a^=b:交换两个数

posted @ 2026-05-21 23:09  andy_qwertyuiop  阅读(29)  评论(0)    收藏  举报