学习单片机中,在编程中经常遇到位运算,各个寄存器的初始化与赋值也会涉及位运算。
经常见到的位运算符:
&(按位与),常用语储存器单元清零操作和保留指定为操作。
|(按位或),常用于使某个数据位置1操作。
^(按位异或),异或的规则是 1和此位相异或,此为改变
0和此位相异或,此为不变。主要用于保留指定位上的数,使特定位上的数翻转。
异或运算还可用于两个数交换数值,从而省去了中间变量。a=a^b;
b=b^a;
a=a^b;
~(取反),用于改变电平的高低。
<<(左移),p<<=1 相当于 p=p<<1,每左移一位,最高位上的数被舍弃,最低位补0,相当于将该整数*2.
int型在Turbo C占两个字节,相当于16个二进制位
int型在VC++占四个字节,相当于32个二进制位