C语言位运算
有6种: &, | , ^(亦或), <<(左移), >>(右移)。
注意:参与位运算的元素必须是int型或者char型,以补码形式出现。
按位与&
&运算常应用于:
迅速清零
保留指定位
判断奇偶性
a & 1 = 1;则a为奇数
b & 1 = 0;则a为偶数
按位或|
按位或(“|”)用途:设定数据的指定位
按位异或^
异或 就是位相同等于零,相异等于1
按位异或作用:
1.定位反转
2.交换数值
//交换a和b的值
按位取反~
左移、右移
让二进制左移N位,高位丢弃,低位补0,得到的 新值 = 原值*2^N,
作用:实现二倍乘除运算(右移几位相当于除于二的几次方。左移几位,相当于乘上二的几次方。)
问题:int是有符号类型,左移可能会把符号左移出去,发生溢出。