标签:style color io 数据 ar amp ad on
C语言中提供了6个位操作符。这些运算符只能作用于整形操作数,即只能作用于带符号或者无符号的char、short、int、long类型:
| & | 按位与(AND) |
| | | 按位或(OR) |
| ^ | 按位异或(XOR) |
| << | 左移 |
| >> | 右移 |
| ~ | 按位取反(一元运算符) |
下面以整形int为例进行说明(为了便于说明,设置二进制只有8位):
#include "stdio.h"
int main(int argc, char const *argv[])
{
// 位操作符,只能作用于带符号,或则无符号的基本数据类型
int n = 4;
// 4的二进制表示为100
printf("%d\n", n & ~0); //按位与100 & 11111111 = 00000100 即4
printf("%d\n", n | ~0); //按位或100 | 11111111 = 11111111
//为负数,减1取反得00000001 即-1
printf("%d\n", n ^ ~0); //按位异或100 ^ 11111111 = 11111011
//为负数,减1取反得00000101 即-5
printf("%d\n", n << 2); //左移两位得00010000 即4 * (2^2) = 16
printf("%d\n", n >> 2); //右移两位得00000001 即1
printf("%d\n", ~n); //取反的11111011 即-5
return 0;
}
标签:style color io 数据 ar amp ad on
原文地址:http://my.oschina.net/Barudisshu/blog/304344