这都是位操作,其中:
  ~ : 意思是按位取反,类似于非(!)的关系,取它的反面。
  <<: 意思是左移,移动二进制的位。
  & : 意思是按位与,类似于与(&&)的关系,一假为假。
  ^ : 意思是按位异或,通俗地说就是相同为0,不同为1.
  | : 意思是按位或,类似于或(||)的关系,一真为真。
  优先级:按位取反 > 移位 > 按位与 > 按位异或 > 按位或

第一个式子:x | (1<<4) | (1<<3) | (1<<2),写出它们的二级制码:

1 :0 0 0 0 0 0 0 1
  1<<2:0 0 0 0 0 1 0 0 ★★
  1<<3:0 0 0 0 1 0 0 0 ★★
  1<<4:0 0 0 1 0 0 0 0 ★★
  (1<<4) | (1<<3) | (1<<2):0 0 0 1 1 1 0 0 ★★★
  显然,拿(1<<2),(1<<3),(1<<4)与x求位或的结果就是将x二进制位中第3、4、5位(从低位向高位计数)中的数变为1。此操作多用来恢复位。

第二个式子:x & ~(1<<2) & ~(1<<0),写出它们的二级制码:
  1 :0 0 0 0 0 0 0 1
  1<<0 :0 0 0 0 0 0 0 1
  ~(1<<0):1 1 1 1 1 1 1 0 ★★
  1<<2 :0 0 0 0 0 1 0 0
  ~(1<<2):1 1 1 1 1 0 1 1 ★★
  ~(1<<2) & ~(1<<0):1 1 1 1 1 0 1 0 ★★★
  显然,这两个式子与x进行求位与的结果就是将x第1、3位处的二进制码变为0,此操作多用来清除位。

第二个式子:x ^ (1<<3) ^ (1<<2),写出它们的二级制码:

1 :0 0 0 0 0 0 0 1
  1<<2:0 0 0 0 0 1 0 0 ★★
  1<<3:0 0 0 0 1 0 0 0 ★★
  (1<<3) ^ (1<<2):0 0 0 0 1 1 0 0 ★★★
  显然,这两个式子与x进行求异或的结果就是将x第3、4位处的二进制码取反(0与1生成1,1与1生成0),其他位置不变。此操作多用来反转位和保留位。

《C++》左移按位与按位异或按位或优先级相关推荐

  1. 按位与  逻辑与  按位或|  逻辑或||  及其应用

    按位与&  逻辑与&&  按位或|  逻辑或||  及其应用 结果:1&2 = 0 1&&2 = 1 结果: 概念: 掩码(英语:Mask)在计算机学科 ...

  2. 位运算符:按位取反(~)、位与()、位或(|)、位异或(^);左移运算符(<<)、右移运算符(>>)

    位运算可对变量中的个别位进行操作,您可能对这样做的原因感到奇怪,这种能力有时确实是必须的,或者至少是有用的. 位运算符可以分为两大类:1.位逻辑运算符:2.移位运算符 1.位逻辑运算符: 位运算符用于 ...

  3. 位操作符详解(移位操作符(左移/右移)、按位与‘’操作符、按位或‘|’操作符、按位异或‘^’操作符)

    位操作是程序设计中对位模式按位或二进制数的一元和二元操作: 在许多微处理器上,位运算与加减运算速度大致相同,但位运算的速度远快于乘法运算: 位操作符的使用,可以使我们在处理一些问题上方便许多. 移位操 ...

  4. 按位或 按位与 按位异或 (| ^) 入门及技巧

    | 按位或:     参与运算的两数各对应的二进位相或.只要对应的二个二进位有一个为1时,结果位就为1         例如: 1|2 : 0001 | 0010 = 0011             ...

  5. Python基础:按位异或 ^ ,按位或 | ,按位与

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http ...

  6. mysql 按位取反_按位与,按位异或,按位取反

    **& 按位与,相同的不变,否则都算成0 | 按位或, ^ 按位异或,不相同的都算成1** PHP按位与或 (^ .&)运算也是很常用的逻辑判断类型,有许多的PHP新手们或许对此并不太 ...

  7. Python全栈工程师(Python3 所有基础内容 0-0)

    ParisGabriel 每天坚持手写  一天一篇  决定坚持几年 为了梦想为了信仰  开局一张图 Python一个月的基础语法 基本就到这咯    接下来是数据库了 东西太多了  简单的整理一下 大 ...

  8. 西邮Linux兴趣小组2021纳新面试题

    #include<stdio.h> #include<string.h> int main(void) {char s[]="I love Linux\0\0\0&q ...

  9. c语言中按位或赋值给变量,[转载]C语言位运算符在单片机上的应用

    C语言位运算符 学过汇编的朋友都知道汇编对位的处理能力是很强的,但是C语言也能对运算对象进行按位操作,从而使C语言也能具有一定的对 硬件直接进行操作的能力.位运算符的作用是按位对变量进行运算,但是并不 ...

最新文章

  1. 6年iOS开发程序员总结组件化—让你的项目一步到位
  2. Android 模仿微信启动动画(转)
  3. php7.1函数,PHP7.1常用新特性和函数
  4. 原 荐 简单说说Kafka中的时间轮算法
  5. C 简单瞎搞题(牛客练习赛22)(bitset优化dp)
  6. python自定义函数画图_python matplotlib自定义colorbar颜色条-以及matplotlib中的内置色条...
  7. 《深入理解Android:卷III A》一一第3章 深入理解AudioService
  8. linux重启后mysql无法启动_Linux重启后MySQL数据库文件全部丢失MySQL无法启动
  9. centos7 开机启动脚本
  10. mysql java 日期_Mysql和JAVA中的几个日期操作
  11. 财务管理都学什么计算机课程,计算机财务管理课程教学大纲.DOC
  12. 华为手机Root方法(推荐)
  13. 计算机cpu风扇不转怎么办,计算机CPU风扇不转怎么办
  14. 【微信小程序】设备判断android还是ios及微信版本信息 ( 含工具类 )
  15. jsp 按照学号查找学生_jsp+mysql添加查询代码,并把查询结果返回当前页面,可以按学号,姓名或成绩查询...
  16. WPAWPA2 deauth攻击实验
  17. 推荐系统:冷启动问题【用户冷启动、物品冷启动、系统冷启动】
  18. Paint in 3D 基本使用方法(Unity 3D)
  19. 红色企业通用年终总结PPT模板
  20. 工作效率全靠 Deadline?7 步策略让你成为行动派

热门文章

  1. 单片机c语言 一小时,1小时单片机c语言快速入门1.docx
  2. 三个一计算机活动,三年级上册信息技术教案 - 用计算机学习和娱乐(综合活动1) 闽教版.docx...
  3. 详解 3dmax SDK 环境搭建与QT配置
  4. vs2017+pangolin的配置教程
  5. 关于 python fitz 不能安装的问题
  6. 数据湖基本概念--什么是数据湖,数据湖又能干什么?为什么是Hudi
  7. JVM虚拟机详解(三)类加载器的分类
  8. flvjs api 中文
  9. 《C语言程序设计》课程设计 -- 火车票票务管理系统
  10. Python爬虫教程-总纲