/* 在很多系统程序中常要求在位(bit)一级进行运算或处理。C语言提供了位运算的功能, 这使得C语言也能像汇编语言一样用来编写系统程序。
********************
操作符 * 作用
********************
& * 位与 1 & 1 = 1; 1 & 0 = 0; 0 & 0 = 0;
| * 位或 1 | 1 = 1; 1 | 0 = 1; 0 | 0 = 0;
^ * 位异或 1 ^ 1 = 0; 0 ^ 1 = 1; 0 ^ 0 = 0;
! * 位反 ! 1 = 0; ! 0 = 1;
>> * 右移 01011 >> 1 = 0101;
<< * 左移 01011 << 1 = 1011;
********************
按位运算是对字节或字中的实际位进行检测、设置或移位, 它只适用于字符型和整数型变量以及它们的变体, 对其它数据类型不适用。
我们要注意区分位运算和逻辑运算。
*/
//我们先来做一些练习熟悉位运算
/*由于不同位的计算机系统和编译器存储时字节数会不同,本文所有操作都在64位系统和32位编译器下执行的*/
# include<stdio.h>
void main()
{
int x;