C语言提供了六种位运算符,它们分别是:
& 按位与 a & FE 使末位置0
| 按位或 a | 01 使末位置1
^ 按位异或 a ^= 0x20;
~ 取反 a = ~a;
<< 左移 相当于*2, 带符号
>> 右移 相当于/2, 带符号
注意:右移正数最小为0,负数最小为-1;
int main()
{
int i = 2;
int j = -2;
printf("%-16X , %-16X \n",i,j);
printf("%-16X , %-16X \n",i<<4,j<<4);
printf("%-16d , %-16d \n",i<<4,j<<4);
printf("%-16X , %-16X \n",i>>4,j>>4);
printf("%-16d , %-16d \n",i>>4,j>>4);
return 0;
}
结果如下:
2 , FFFFFFFE
20 , FFFFFFE0
32 , -32
0 , FFFFFFFF
0 , -1
请按任意键继续. . .