理解C语言位运算符

位运算符

位运算符包括:&|^~<<>>

分析

& 按位与操作,按二进制位进行"与"运算。
| 按位或运算符,按二进制位进行"或"运算。
^ 异或运算符,按二进制位进行"异或"运算。
~ 取反运算符,按二进制位进行"取反"运算。
<< 二进制左移运算符。
>> 二进制右移运算符。

实例

实例条件
X = 60 转换二进制为 X = 0011 1100
Y = 13 转换二进制为 Y = 0000 1101

1. 当 X & Y

准则:二进制中上下对应,全 00,全 11,其他均为 0

数值/二进制位数 1 2 3 4 5 6 7 8
X = 60 0 0 1 1 1 1 0 0
Y = 13 0 0 0 0 1 1 0 1
X & Y 0 0 0 0 1 1 0 0

2. 当 X | Y

准则:二进制中上下对应,全 00,全 11,其他均为 1

数值/二进制位数 1 2 3 4 5 6 7 8
X = 60 0 0 1 1 1 1 0 0
Y = 13 0 0 0 0 1 1 0 1
X | Y 0 0 1 1 1 1 0 1

3. 当 X ^ Y

准则:二进制中上下对应,全 00,全 10,其他均为 1

数值/二进制位数 1 2 3 4 5 6 7 8
X = 60 0 0 1 1 1 1 0 0
Y = 13 0 0 0 0 1 1 0 1
X ^ Y 0 0 1 1 0 0 0 1

4. 当 ~X

准则:二进制中上下对应,遇01,遇 10

数值/二进制位数 1 2 3 4 5 6 7 8
X = 60 0 0 1 1 1 1 0 0
~X 1 1 0 0 0 0 1 1

5. 当 X << 2

准则:二进制中上下对应,向左移两位,最右补 0

数值/二进制位数 1 2 3 4 5 6 7 8
X = 60 0 0 1 1 1 1 0 0
X << 2 1 1 1 1 0 0 0 0

6. 当 X >> 2

准则:二进制中上下对应,向右移两位,最左补 0

数值/二进制位数 1 2 3 4 5 6 7 8
X = 60 0 0 1 1 1 1 0 0
X << 2 0 0 0 0 1 1 1 1

你可能感兴趣的:(理解C语言位运算符)