1. 按位与运算

按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。

例如:9&5可写算式如下: 00001001 (9的二进制补码)&00000101 (5的二进制补码) 00000001 (1的二进制补码)可见9&5=1。
按位与运算通常用来对某些位清0或保留某些位。例如把a 的高八位清 0 , 保留低八位, 可作 a&255 运算

( 255 的二进制数为0000000011111111)。
main(){
int a=9,b=5,c;
c=a&b;
printf("a=%d\nb=%d\nc=%d\n",a,b,c);
}

2. 按位或运算

按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。参与运算的两个数均以补码出现。

例如:9|5可写算式如下: 00001001|00000101
00001101 (十进制为13)可见9|5=13
main(){
int a=9,b=5,c;
c=a|b;
printf("a=%d\nb=%d\nc=%d\n",a,b,c);
}

3. 按位异或运算

按位异或运算符“^”是双目运算符。其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。参与运算数仍以补码出现

例如9^5可写成算式如下: 00001001^00000101 00001100 (十进制为12)
main(){
int a=9;
a=a^15;
printf("a=%d\n",a);
}

总结:

&、|、^都是位运算符
 & (与):两个都是真(1)时,结果才是真
 | (或):有一个是真(1)时,就是真
 ^ (异或):相同为假(0),不同为真
 计算时,先把其化为二进制数
 如:5:0101
 3:0011
 5 & 3:0001=1
 5 | 3:0111=7
 5 ^ 3:0110=6

什么是按位或|,什么是按位与,什么是按位异或^ (双目运算符)相关推荐

  1. c 语言 按位与或非运算符,C++中的按位与、按位与或|、按位异或^运算符详解

    按位与运算符:& 语法 expression & expression 备注 表达式可以是其他"与"表达式,或(遵循下面所述的类型限制)相等表达式.关系表达式.加法 ...

  2. 《深入理解Java虚拟机》笔记4——类文件结构

    代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步. 由于最近十年内虚拟机以及大量建立在虚拟机之上的程序语言如雨后春笋般出现并蓬勃发展,将我们编写的程序编译成二进 ...

  3. Java的Class类文件结构及基本字节码指令

    Class类文件的结构 概念:Class文件是一组以8位字节为基础单位的二进制流 按顺序整齐排列 没有任何分隔符,内容全部是运行时的必要数据,没有空隙存在 排序方式:高位在前 Big-Endian:最 ...

  4. 深入理解java虚拟机脑图文档

    二.内存区域和内存溢出 运行时数据区域 程序计算器 线程私有,当前线程锁执行的字节码的行号指示器,不会出现OOM. java虚拟机栈 概念: 线程私有,java方法执行的线程内存模型,每个方法呗执行时 ...

  5. 通过按位与和按位或操作

    通过按位与和按位或操作来拉高或者拉低某位的电平,用这两种运算可以让其他为的电平状态不受影响. 1.按位或 | 操作,可以实现拉高电平 0 -> 1,即对应位至少有一者为1运算结果为1,都为0才为 ...

  6. 求两个数的按位与、按位或、按位异或的结果

    <程序设计基础实训指导教程-c语言> ISBN 978-7-03-032846-5 p114 6.1.2 上级实训内容 [实训内容5]给出两个数,求这两个数的按位与.按位或.按位异或的结果 ...

  7. 逻辑与和按位与、逻辑或和按位或的区别

    首先分别明确一下他们各自的概念. 按位与和按位或 按位与和按位或都属于位操作符. 注意:位操作符的操作数必须是整数. 按位与"&" 按二进制位对应的位进行与运算,对应位都为 ...

  8. 【题解】《算法零基础100讲》(第44讲) 位运算 (位或) 入门

    文章目录 一. 概念定义 1.1 位或定义 1.2 位与定义 二. 推荐专栏 三. 相关练习 3.1 根据数字二进制下 1 的数目排序 3.2 二进制表示中质数个计算置位 3.3 2 的幂 一. 概念 ...

  9. 【python语言基础】疑难点整理1

    python编码规范 Python 采用PEP 8作为编码规范. 1.每个import语句只导入一个模块,尽量避免一次导入多个模块 2.不要在行尾添加分号,也不要用分号将两条命令放在同一行 3.建议每 ...

  10. java优先级目数_10.Java运算符+(优先级、目数)+

    序列号符号名称结合性(与操作数) 目数说明 1 . 点从左到右双目( ) 圆括号从左到右 [ ] 方括号从左到右 2 + 正号从右到左单目 - 负号从右到左单目 ++ 自增从右到左 单目 前缀增,后缀 ...

最新文章

  1. 浅谈“知识蒸馏”技术在机器学习领域的应用
  2. 文件给制实施规定的实例(GB8567-88)
  3. Node js redis
  4. pygame为游戏添加背景_万能的Python和Pygame模块构建一个游戏框架
  5. 王道408数据结构——第五章 树与二叉树
  6. OJ1007: 鸡兔同笼
  7. 面向对象之自动生成助记码
  8. 判断数组中的元素是否连续
  9. IDEA项目打包几种方式
  10. 使用WPS邮件合并功能和文档部件插入图片制作准考证
  11. matlab counter是什么意思,counter-propagating是什么意思
  12. 大数据工程师的日常工作是什么?要掌握哪些核心技术?
  13. JVM safe point 安全点和 counted loop 可数循环
  14. 多元回归分析的心得(笔记)
  15. 域名解析错误怎么办?
  16. js中整除符号_JavaScript的算术运算符
  17. iOS网络NSURLSession使用详解
  18. 下载离线地图多种方式(osm,MapTileDownloader )
  19. 阿里云轻量级服务器部署springboot项目详细教程--保姆级入门
  20. 铺地毯——洛谷(P1003)

热门文章

  1. 大小写字母转换问题: 将从键盘读入的小写字母转换成大写字母向屏幕输出,同时输出该大写字母的ASCII码值和所占的内存空间大小。(输入输出中的◊代表一个空格)输入一行:小写字母输出两行:第一
  2. 创建型设计模式之工厂模式
  3. python与会计的论文_python计算与编程实践论文范文 有关西安交通大学软件学院软件工程硕士研究生毕业论文写作资料...
  4. 手撕CNN神经网络(二)反向传播(back propagation)
  5. Linux学习路线全解,Linux操作系统学习路线
  6. Java实现快速排序(快排)
  7. md 语法之表格:对齐和换行
  8. 高瓴资本领投,国仪量子宣布完成B轮数亿元大笔融资
  9. python pil怎么安装_python pil 怎么安装 怎样安装python的图像处理库pillow
  10. java冰法_Java基础学习笔记二 Java基础语法