第第1515章章位运算位运算15.1位运算符(用于对二进制数值的位进行运算)包括:逻辑位操作运算符:~求反,一元运算符,将操作数逐位取反。&按位“与”,两操作数逐位求“与”。|按位“或”,两操作数逐位求“或”。^按位“异或”,两操作数逐位相加不进位。移位运算符:<<二进制左移,将操作数左移指定位数。>>二进制右移,将操作数右移指定位数。扩展的赋值运算符:扩展运算符表达式等价的表达式<<=a<<=2a=a<<2>>=b>>=nb=b>>n&=a&=ba=a&b|=a|=ba=a|b^=a^=ba=a^b使用规则:(参加位操作的操作数必须是整型常数或整型变量)逻辑位操作运算符的使用形式为:操作数1&操作数2操作数1|操作数2操作数1^操作数2~操作数移位运算符的使用形式为:操作数1<<操作数2将操作数1左移操作数2指定的位数操作数1>>操作数2将操作数1右移操作数2指定的位数例如:inta=15,b=125;a&b;/*a和b按位与*/a^(~b);/*a和非b按位或*/b<<2;/*b左移2位*/15.2位运算符的运算功能1.“按位取反”运算~01001101结果:101100102.“左移”运算chara=6,b;b=a<<2;a:00000110左移2位:00011000b=243.“右移”运算shortinta=-8,b;b=a>>2;a:1111111111111000左移2位:1111111111111110b=-215.2位运算符的运算功能续14.“按位与”运算5.“按位异或”运算12:0000110000110011&10:00001010^11000011结果:00001000结果:111100006.“按位或”运算01010011|00001100结果:010111117.位数不同的运算数之间的运算规则1)系统先将两个运算数右端对齐。2)再将位数短的运算数往高位扩充(无符号数和正整数左侧用0补全,负数左侧用1补全。),然后对位运算。