按位与运算符(&)

运算规则:

  • 参与运算的两个操作数转换为二进制按照“与”运算
  • 0&0 = 0;1&0 = 0;0&1 = 0;1&1 = 1;
  • 即:两个操作数同为“1”的时候为1;

例:3&5 即0000 0011 & 0000 0101 = 1;

另,负数按补码形式参加按位与运算。

“与运算”的特殊用途:

(1)清零。如果想将一个单元清零,即使其全部二进制位为0,只要与一个各位都为零的数值相与,结果为零。

(2)取一个数中指定位

方法:找一个数,对应X要取的位,该数的对应位为1,其余位为零,此数与X进行“与运算”可以得到X中的指定位。

例:设X=10101110,

取X的低4位,用 X & 0000 1111 = 00001110 即可得到;

还可用来取X的2、4、6位。

按位或运算符(|)

运算规则:

  • 参与运算的两个操作数转换为二进制按照“或”运算
  • 0|0 = 0;1|0 = 1;0|1 = 1;1|1 = 1;
  • 即:两个操作数中至少有一个为“1”的时候为1;

例:3|5 即 即0000 0011 | 0000 0101 = 7;

另,负数按补码形式参加按位或运算。

“或运算”特殊作用:

(1)常用来对一个数据的某些位置1。

方法:找到一个数,对应X要置1的位,该数的对应位为1,其余位为零。此数与X相或可使X中的某些位置1。

例:将X=10100000的低4位置1 ,用X | 0000 1111 = 1010 1111即可得到。

异或运算符(^)

运算规则:

  • 参与运算的两个操作数转换为二进制按照“与”运算
  • 0 ^ 0 = 0; 0 ^ 1=1; 1 ^ 0=1; 1 ^ 1=0;
  • 即:两个操作数不同的时候为1;

异或运算”的特殊作用:

(1)使特定位翻转找一个数,对应X要翻转的各位,该数的对应位为1,其余位为零,此数与X对应位异或即可。

例:X=10101110,使X低4位翻转,用X ^0000 1111 = 1010 0001即可得到。

(2)与0相异或,保留原值 ,X ^ 00000000 = 1010 1110。

从上面的例题可以清楚的看到这一点。

取反运算符(~)

  • 参加运算的一个数据,按二进制位进行“取反”运算。
  • 运算规则:~1=0; ~0=1;
  • 即:对一个二进制数按位取反,即将0变1,1变0。
使一个数的最低位为零,可以表示为:a&~1。
1的值为1111111111111110,再按“与”运算,最低位一定为0。因为“~”运算符的优先级比算术运算符、关系运算符、逻辑运算符和其他运算符都高。

左移运算符(<<)

将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。

例:a = a<< 2将a的二进制位左移2位,右补0,

左移1位后a = a *2;

若左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以2。

右移运算符(>>)

讲一个运算对象的各二进制位全部右移若干位(右边丢弃,左边根据数值的正负来补0或者补1,正数左补0,负数左补1,)。

操作数每右移一位,相当于该数除以2。

例如:a = a>> 2 将a的二进制位右移2位,

左补0 or 补1得看被移数是正还是负。

(与运算)、|(或运算)、^(异或运算)相关推荐

  1. 异或运算_专题 | 异或运算的一些应用

    点击上方蓝字设为星标 每周一.三.五上午 8:30 准时推送 下面开始今天的学习- 定义 异或是一个数学运算,用于逻辑运算.如果 a.b 两个值不同,则异或结果为 1 ,否则结果为 0 .真值表如下: ...

  2. c语言两个变量异或运算,C语言异或运算

     C语言异或运算 位运算符家族中,最常用的,某过于异或运算符. 异或运算符是指: 参与运算的两个值,如果两个相应位相同,则结果为0,否则为1.即:0^0=0, 1^0=1, 0^1=1, 1^1= ...

  3. C语言异或运算的实现,异或运算C语言简单实现

    /*说明:下面的方法只适用于非负数,范围为int*/ #include #include #include using namespace std; int xor_old(int a,int b){ ...

  4. 经典算法之异或运算(无进位相加)

    目录 异或运算的定义 异或运算的性质 异或运算的应用 交换两数 翻转指定位 寻找单身狗 异或运算的定义 众所周知,计算机中的所有数据都是以二进制(0或者1)的形式存储.而异或运算符(^)就是将参加运算 ...

  5. matlab中逻辑非运算,MATLAB:图像的与、或、非、异或逻辑运算(、|、~、xor)

    图像的与.或.非.异或逻辑运算涉及到了&.|.~和xor符号 close all;%关闭当前所有图形窗口,清空工作空间变量,清除工作空间所有变量 clc; clear all; I=imrea ...

  6. 异或运算的基本介绍以及使用技巧,剖析常见的异或题目

    关于异或运算 一.异或运算的基本介绍 二.异或运算的性质 三.异或运算的经典题目 1.题目1 2.题目2 3.题目3 4.题目4 5.题目5 四.异或运算小结 一.异或运算的基本介绍 异或运算,符号为 ...

  7. 取模运算法则,异或运算法则

    一.取模运算法则(百度百科) 定义 给定一个正整数p,任意一个整数n,一定存在等式 : n = kp + r : 其中 k.r 是整数,且 0 ≤ r < p,则称 k 为 n 除以 p 的商, ...

  8. mysql位运算 索引_mysql 使用位运算

    如果你不知道什么是位运算的话, 那么请你先去看看基础的C语言教程吧. 与运算 a & b  , 或运算 a | b , 异或运算 a ^ b , 或者 你也可以将 与运算理解为 + 法 例如 ...

  9. 不占用多余空间实现值的交换——异或运算

    首先什么是异或运算? ^规则: 0 ^ x = x x ^ x = 0 那么 a 与 b 交换值如何做呢???三行代码

  10. C 关于使用异或运算操作概述

    对于异或运算操作,每次都需要读取两个数据到寄存器中,再进行运算操作,之后把结果写回到变量中,前后共需要三次内存写入操作. 异或运算可以达到交换两数的目的,代码如下: void swap(int &am ...

最新文章

  1. lua中正则表达式的坑
  2. spring boot 2.0 源码分析(二)
  3. 跳出数据计算拯救人工智能之分布式逻辑
  4. python利器怎么编程-python等自动化脚本编程利器 Script.NET
  5. spring10: 引用类型的自动注入
  6. opencv4 c++ 提取图片中的白色区域_【从零学习OpenCV 4】形态学应用
  7. Git——[error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054]解决方案
  8. top进阶命令htop运用
  9. 计算机安全性无效无法连接到网络,图文研习windows10系统连接网络提示无法连接到此网络错误的方法?...
  10. su: user tomcat does not exist
  11. Android 项目中文件夹的作用
  12. pytorch ——模型创建与nn.Module
  13. 黑马程序员——程序结构
  14. linux组合键 发送指定信号_linux trap脚本信号捕获命令的使用
  15. 成都将于1月27日开启数字人民币红包活动
  16. Tip: JSP开发模式
  17. win7系统架设传奇的简单办法
  18. tornado 源码分析 waker
  19. 义隆单片机可用c语言写了吗,义隆单片机编程时应注意的几点
  20. 我只说一次,这样用领英开发国外客户,屡试不爽!

热门文章

  1. tmux关闭某个不响应的窗口(window)
  2. Channels ——django实时推送系统
  3. telnet找不到这个服务器,win7系统找不到Telnet服务的解决方法
  4. Python数据可视化实战 (附Python代码)
  5. ITERATE MYSQL 例子_介绍MySQL的Iterate迭代语句实例代码
  6. bzoj3714【PA2014】Kuglarz
  7. compler moves this pointer while Upcasting derived ojbect pointe to parent pointe by static_cast
  8. 利用huggingface-transformers进行命名实体识别
  9. vnpy文件结构说明
  10. 京东App Swift 混编及组件化落地