1、前言

C的位运算符有&(按位与)、|(按位或)、^(按位异或)、~(按位取反),位运算符把运算对象看作是由二进制位组成的位串信息,按位完成指定的运算,得到相应的结果。

2、位运算符

在上面提到的运算符中,~(按位取反)为单目运算符,其它的都为双目运算符,位运算符的优先级从高到低,依次为~、&、^、|。

(1)按位与运算符(&)

按位与运算符按照以下规则进行计算:

0 & 0 = 0

0 & 1 = 0

1 & 0 = 0

1 & 1 = 1

也就是同为1的位,结果为1,否则为0。

按位与运算有两种典型用法,第一种是取位串的某几位,例如截取x的最低8位:x & 0x00ff,第二种是让变量保留某几位,其余位置0,例如让x保留高8位:x = x & 0xff00。

(2)按位或运算符(|)

按位或运算符按照以下规则进行计算:

0 | 0 = 0

0 | 1 = 1

1 | 0 = 1

1 | 1 = 1

也就是,只要是有1个是1的位,运算结果为1,其余为0。

按位或运算符的典型用法是将一个位串信息的某几位置1,例如将x的最低2位置1:x = x | 0x03。

(3)按位异或运算符(^)

按位异或运算符按照以下规则进行计算:

0 ^ 0 = 0

0 ^ 1 = 1

1 ^ 0 = 1

1 ^ 1 = 0

也就是,对应位的值相同,则结果为0,对应位的值不同,则为1。

(4)按位取反运算符(~)

按位取反运算是单目运算,用来求一个位串信息按位的反,也就是,哪些为0的位,运行结果为1,而哪些为1的位,结果是0,例如,x的值为0x07,则~x的结果为0xf8。

按位取反运算符的典型运用为,和&运算符结合使用,将某几位设置为0,例如,将x的最低2位进行清0操作,x为0xf3,则将最低2位进行清0,可以使用x = x & ~0x03,将语句运行后,x将变成0xf0。

最新文章

  1. OpenSceneGraph 编译 error LNK2019:unresolved external symbol 错误
  2. Web 在线文件管理器学习笔记与总结(15)剪切文件夹 (16)删除文件夹
  3. python常见环境安装
  4. 第三方类AFNetworking
  5. 【暑假】[深入动态规划]UVa 10618 The Bookcase
  6. 使用python编写批量卸载android应用的脚本
  7. 11g的alert日志路径
  8. FreeMarker 语法
  9. SQLAlchemy+Flask-RESTful使用(二)
  10. django中常用的数据查询方法
  11. 【Java基础】char
  12. 【奇淫技巧】API接口字段table文档转代码工具
  13. (转)Linux vi 命令大全
  14. JVM vs DVM
  15. 如何对接oracle 建立pdb
  16. python_day1_python第一个程序 hello world
  17. lseek函数与文件空洞
  18. idea上查看本文件svn修改的历史版本
  19. [CF1111C]Creative Snap
  20. 第53天:鼠标事件、event事件对象

热门文章

  1. sonarqube+sonar runner分析C#代码
  2. CSSS选择器总结
  3. OpenSSL生成私钥和公钥
  4. Python字符编码和转码
  5. Logstash连接Elasticsearch异常
  6. Spring AOP技术本质认识
  7. meta设置与去除默认样式--移动端开发整理笔记(一)
  8. 配置Maven环境变量-Eclipse/Idea添加Maven
  9. restql 学习一 安装试用
  10. W5500 学习开发: W5500学习说明