位运算是指进行二进制的运算。在系统软件中,常需要处理二进制位的问题。例如,将一个存储单元中的各二进制位左移或右移一位,两个数按位相加等。C语言提供位运算的功能。
运算符 含义
& 按位与
| 按位或
^ 按位异或
~ 取反
<< 左移
>> 右移
| 按位或
^ 按位异或
~ 取反
<< 左移
>> 右移
说明:
位运算符中,除了 ~ 取反以外,均为二目(元)运算符,即要求两侧各有一个运算量。
运算量只能是整型或字符型数据,不能是实型数据。
位运算符中,除了 ~ 取反以外,均为二目(元)运算符,即要求两侧各有一个运算量。
运算量只能是整型或字符型数据,不能是实型数据。
与运算符特点:
1、如果参加 与 运算的是负数,则以补码形式表示为二进制数,然后按位进行 与 运算。
2、清零。
3、取一个数中的某些指定位。
4、保留某一个数
2、清零。
3、取一个数中的某些指定位。
4、保留某一个数
或运算符特点
1、两个相应的二进制位中只要有一个为1,该位的结果值为1。
2、或运算可以指定某些位的值为1.
2、或运算可以指定某些位的值为1.
异或
1、若参加运算的两个二进制位同号,则结果为零;异号则为1。
2、使特定位翻转。
3、与0相异或,保留原值。
4、交换两个值,不用临时变量
比如 : a = 3,b = 4。交换a、b。
语句 : a = a ^b;b = b^a;a = a^b
2、使特定位翻转。
3、与0相异或,保留原值。
4、交换两个值,不用临时变量
比如 : a = 3,b = 4。交换a、b。
语句 : a = a ^b;b = b^a;a = a^b
取反运算符 :
: ~ 是一个单目(元)运算符,用来对一个二进制数按位取反,即将0变一,将1变0.
: ~ 是一个单目(元)运算符,用来对一个二进制数按位取反,即将0变一,将1变0.
左移运算符 << a = a << 2 将a左移两位。
右移运算符 >>