第十五章 位运算
15.1 位运算符
位运算的对象只能是整型或字符型数据
2? o? ò? óè
~ °′ 2′ 1
<< 3? ò? 2
>> óò ò? 2
& °′ ó? 3
^ °′ òì 4
| °′ 5位运算符及功能
à1 2? ±í ′? ê? μè μ? ±í ′? ê?
<<= a << =2 a =a << 2
>>= b>> =n b=b >> n
&= a &=b a =a &b
^= a ^=b a =a ^b
|= a | =b a =a | b
扩展运算符及含义
15.2 位运算符的运算功能
1,按位取反运算 (~)
2.,左移”运算 (<<)
是双目运算符,左边是移位对象,右边是左移的位数,
左移时,右端 (低位 )补 0,左端移出的部分舍弃,
如,a,00000110(a=6)
b=a<<2,00011000(b=24=4*6)
当移出的部分无有效二进制数 1,则左移一位,相当于乘以
2,反之则不适用,
3.“右移”运算 (>>)
右移时,右端移出的二进制位舍弃,左端移入分二种情况,
a:对于无符号整数和正整数,高位补 0
b:对于负整数,高位补 1
见书 P212
4.“按位与运算” (&)
具有如下特征,任何位上的二进制数,只要和 0“与”,该位立即被屏蔽 ; 和 1“与”,该位保留原值不变,
5.按位异或运算 (^)
00110011
11000011
如,11010010
00010000&
^
6.按位或运算 ( | )
二个运算数中,只要二个相应二进制位中有一个为 1,该位的运算 结果为 1,二个相应位的数都为 0
时,该位的运算结果才为 0
它具有如下特殊性征,
要使某位的数翻转,只要和 1进行,异或,运算,,要使某位保持原数,只要和 0 进行,异或,运算
7.位数不同的运算数之间的运算规则先将两数右端对齐再将位数短的一个运算数向高位扩充,按位运算
15.1 位运算符
位运算的对象只能是整型或字符型数据
2? o? ò? óè
~ °′ 2′ 1
<< 3? ò? 2
>> óò ò? 2
& °′ ó? 3
^ °′ òì 4
| °′ 5位运算符及功能
à1 2? ±í ′? ê? μè μ? ±í ′? ê?
<<= a << =2 a =a << 2
>>= b>> =n b=b >> n
&= a &=b a =a &b
^= a ^=b a =a ^b
|= a | =b a =a | b
扩展运算符及含义
15.2 位运算符的运算功能
1,按位取反运算 (~)
2.,左移”运算 (<<)
是双目运算符,左边是移位对象,右边是左移的位数,
左移时,右端 (低位 )补 0,左端移出的部分舍弃,
如,a,00000110(a=6)
b=a<<2,00011000(b=24=4*6)
当移出的部分无有效二进制数 1,则左移一位,相当于乘以
2,反之则不适用,
3.“右移”运算 (>>)
右移时,右端移出的二进制位舍弃,左端移入分二种情况,
a:对于无符号整数和正整数,高位补 0
b:对于负整数,高位补 1
见书 P212
4.“按位与运算” (&)
具有如下特征,任何位上的二进制数,只要和 0“与”,该位立即被屏蔽 ; 和 1“与”,该位保留原值不变,
5.按位异或运算 (^)
00110011
11000011
如,11010010
00010000&
^
6.按位或运算 ( | )
二个运算数中,只要二个相应二进制位中有一个为 1,该位的运算 结果为 1,二个相应位的数都为 0
时,该位的运算结果才为 0
它具有如下特殊性征,
要使某位的数翻转,只要和 1进行,异或,运算,,要使某位保持原数,只要和 0 进行,异或,运算
7.位数不同的运算数之间的运算规则先将两数右端对齐再将位数短的一个运算数向高位扩充,按位运算