1、与运算&
这是一个位运算符,主要用于二进制数据类型的位操作,特点是:同真为真,有假必假- 例如:10&3
- 10= 0000 0101
- & 3= 0000 0011
- ------------------------
- 结果: 0000 0001=1
复制代码
与也有一个特性,就是在位运算中对相应的位进行清零操作,例如:int a=58 ( 0011 1010),如果我们想让低四位为0,高四位不变的话,我们可以把a和0xf0(1111 0000)进行与运算,int b = a&0xf0,结果为0011 0000。
2、按位或运算符“|”
这是一个位运算符,主要用于二进制数据类型的位操作,特点是:同假必假,有真为真
- 例如:10 | 3
- 10 = 0000 1010
- 3 = 0000 0011
- ----------------------
- 0000 1011 = 0x0b =11.
复制代码
按位或也有一个特性,就是相应的位设置为1,其他位进行保持操作,例如:int a=58 ( 0011 1010),如果我们想让高四位不变,低四位全部变成1的话,我们可以让a与0x0f(0000 1111)进行按位或操作,这样的话int b = a|0x0f = 0011 1111 =63。
3、按位异或^
位运算符,特点:相同得0,相反得1
- 例如:10 ^ 3
- 10 = 0000 1010
- ^ 3 = 0000 0011
- ----------------------
- 0000 1001 =9
复制代码
这个的主要特性就是和1异或取反,和0异或保持不变,所以可以快速对一个数据的一些位进行取反,而其他位不变,例如 int a = 58(0011 1010);如果我们不想对高四位进行操作,而想让低四位进行取反,我们可以让a^0x0f(0000 1111),这样int b = a ^ 0x0f; =0011 0101 = 53。
这就是位运算符的一些特性,不过这种用法主要用于针对硬件的开发,这样可以详细操作某个特定的管脚,在平时的软件开发中,这些运算符比较少用,但是为了便于大家理解,在这里简单的总结一些,给大家做个参考。 |
|