《C++》左移按位与按位异或按位或优先级
这都是位操作,其中:
~ : 意思是按位取反,类似于非(!)的关系,取它的反面。
<<: 意思是左移,移动二进制的位。
& : 意思是按位与,类似于与(&&)的关系,一假为假。
^ : 意思是按位异或,通俗地说就是相同为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&2 = 0 1&&2 = 1 结果: 概念: 掩码(英语:Mask)在计算机学科 ...
- 位运算符:按位取反(~)、位与()、位或(|)、位异或(^);左移运算符(<<)、右移运算符(>>)
位运算可对变量中的个别位进行操作,您可能对这样做的原因感到奇怪,这种能力有时确实是必须的,或者至少是有用的. 位运算符可以分为两大类:1.位逻辑运算符:2.移位运算符 1.位逻辑运算符: 位运算符用于 ...
- 位操作符详解(移位操作符(左移/右移)、按位与‘’操作符、按位或‘|’操作符、按位异或‘^’操作符)
位操作是程序设计中对位模式按位或二进制数的一元和二元操作: 在许多微处理器上,位运算与加减运算速度大致相同,但位运算的速度远快于乘法运算: 位操作符的使用,可以使我们在处理一些问题上方便许多. 移位操 ...
- 按位或 按位与 按位异或 (| ^) 入门及技巧
| 按位或: 参与运算的两数各对应的二进位相或.只要对应的二个二进位有一个为1时,结果位就为1 例如: 1|2 : 0001 | 0010 = 0011 ...
- Python基础:按位异或 ^ ,按位或 | ,按位与
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http ...
- mysql 按位取反_按位与,按位异或,按位取反
**& 按位与,相同的不变,否则都算成0 | 按位或, ^ 按位异或,不相同的都算成1** PHP按位与或 (^ .&)运算也是很常用的逻辑判断类型,有许多的PHP新手们或许对此并不太 ...
- Python全栈工程师(Python3 所有基础内容 0-0)
ParisGabriel 每天坚持手写 一天一篇 决定坚持几年 为了梦想为了信仰 开局一张图 Python一个月的基础语法 基本就到这咯 接下来是数据库了 东西太多了 简单的整理一下 大 ...
- 西邮Linux兴趣小组2021纳新面试题
#include<stdio.h> #include<string.h> int main(void) {char s[]="I love Linux\0\0\0&q ...
- c语言中按位或赋值给变量,[转载]C语言位运算符在单片机上的应用
C语言位运算符 学过汇编的朋友都知道汇编对位的处理能力是很强的,但是C语言也能对运算对象进行按位操作,从而使C语言也能具有一定的对 硬件直接进行操作的能力.位运算符的作用是按位对变量进行运算,但是并不 ...
最新文章
- 6年iOS开发程序员总结组件化—让你的项目一步到位
- Android 模仿微信启动动画(转)
- php7.1函数,PHP7.1常用新特性和函数
- 原 荐 简单说说Kafka中的时间轮算法
- C	简单瞎搞题(牛客练习赛22)(bitset优化dp)
- python自定义函数画图_python matplotlib自定义colorbar颜色条-以及matplotlib中的内置色条...
- 《深入理解Android:卷III A》一一第3章 深入理解AudioService
- linux重启后mysql无法启动_Linux重启后MySQL数据库文件全部丢失MySQL无法启动
- centos7 开机启动脚本
- mysql java 日期_Mysql和JAVA中的几个日期操作
- 财务管理都学什么计算机课程,计算机财务管理课程教学大纲.DOC
- 华为手机Root方法(推荐)
- 计算机cpu风扇不转怎么办,计算机CPU风扇不转怎么办
- 【微信小程序】设备判断android还是ios及微信版本信息 ( 含工具类 )
- jsp 按照学号查找学生_jsp+mysql添加查询代码,并把查询结果返回当前页面,可以按学号,姓名或成绩查询...
- WPAWPA2 deauth攻击实验
- 推荐系统:冷启动问题【用户冷启动、物品冷启动、系统冷启动】
- Paint in 3D 基本使用方法(Unity 3D)
- 红色企业通用年终总结PPT模板
- 工作效率全靠 Deadline?7 步策略让你成为行动派
热门文章
- 单片机c语言 一小时,1小时单片机c语言快速入门1.docx
- 三个一计算机活动,三年级上册信息技术教案 - 用计算机学习和娱乐(综合活动1) 闽教版.docx...
- 详解 3dmax SDK 环境搭建与QT配置
- vs2017+pangolin的配置教程
- 关于 python fitz 不能安装的问题
- 数据湖基本概念--什么是数据湖,数据湖又能干什么?为什么是Hudi
- JVM虚拟机详解(三)类加载器的分类
- flvjs api 中文
- 《C语言程序设计》课程设计 -- 火车票票务管理系统
- Python爬虫教程-总纲