A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

刀叨

初级黑马

  • 黑马币:22

  • 帖子:7

  • 精华:0

© 刀叨 初级黑马   /  2015-6-26 19:31  /  754 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1、与运算&
这是一个位运算符,主要用于二进制数据类型的位操作,特点是:同真为真,有假必假
  1. 例如:10&3
  2.       10=  0000 0101
  3. &     3=  0000 0011
  4. ------------------------
  5. 结果:     0000 0001=1
复制代码

与也有一个特性,就是在位运算中对相应的位进行清零操作,例如:int a=58 ( 0011 1010),如果我们想让低四位为0,高四位不变的话,我们可以把a和0xf0(1111 0000)进行与运算,int b = a&0xf0,结果为0011 0000。
2、按位或运算符“|”
这是一个位运算符,主要用于二进制数据类型的位操作,特点是:同假必假,有真为真
  1. 例如:10 | 3
  2.      10 = 0000 1010
  3.        3 = 0000 0011
  4. ----------------------
  5.              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
  1. 例如:10 ^ 3
  2.    10 = 0000 1010
  3. ^   3 = 0000 0011
  4. ----------------------
  5.            0000 1001 =9
复制代码


这个的主要特性就是和1异或取反,和0异或保持不变,所以可以快速对一个数据的一些位进行取反,而其他位不变,例如 int a = 58(0011 1010);如果我们不想对高四位进行操作,而想让低四位进行取反,我们可以让a^0x0f(0000 1111),这样int b = a ^ 0x0f; =0011 0101 = 53。

这就是位运算符的一些特性,不过这种用法主要用于针对硬件的开发,这样可以详细操作某个特定的管脚,在平时的软件开发中,这些运算符比较少用,但是为了便于大家理解,在这里简单的总结一些,给大家做个参考。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马