美文网首页
基础知识位运算-异或

基础知识位运算-异或

作者: 森林中大鸟 | 来源:发表于2020-05-18 06:00 被阅读0次

异或运算

运算规则

参与运算的两个值,如果两个相应bit位相同,则结果为0,否则为1。

0^0 = 0,
1^0 = 1,
0^1 = 1,
1^1 = 0

3个特点:

(1) 00=0,01=1 0异或任何数=任何数
(2) 10=1,11=0 1异或任何数-任何数取反
(3) 任何数异或自己=把自己置0

常见用途

(1) 使某些特定的位翻转(1->0,0->1)

将特定的位异或1即可。
例如对数10100001的第2位和第3位翻转,则可以将该数与00000110进行按位异或运算。
10100001^00000110 = 10100111

(2) 实现两个值的交换,而不必使用临时变量。

例如交换两个整数a=10100001,b=00000110的值,可通过下列语句实现:

a = a^b;   //a=10100111
b = b^a;   //b=10100001
a = a^b;   //a=00000110

(3) 将变量置零:

异或自己

(4) 快速判断两个值是否相等

举例:

return ((a ^ b) == 0)

(5) 加密

加密 : 逐个字符跟secret字符异或运算。
解密 : 密文再跟同一个字符异或运算

相关文章

  • 基础知识位运算-异或

    异或运算 运算规则 参与运算的两个值,如果两个相应bit位相同,则结果为0,否则为1。 3个特点: (1) 00=...

  • 异或运算&位运算

    【想转Java刷算法题 不知道合不合适= = 也可以先不转 先看书】任何数和 0 做异或运算,结果仍然是原来的数,...

  • 位运算--异或(^)

    异或(^)运算 --同为假,异为真 异或结果: (二进制数字) 11 ^ 11 ->00 10 ^ 01 ->1...

  • 位运算技巧

    基础知识 对于位运算,大家都很熟悉,基本的位操作有与(&)、或(|)、非(~)、异或(^)等等。在面试中经常会出现...

  • 3、小众运算符の大课堂(一)

    较为简单の位运算符: & 位与运算| 位或运算^ 位异或运算~ 位取反运算 举例: 要做位运算,首先要把数据转...

  • 笔记

    Java中常用的计算方法 Java异或运算总结 异或运算的性质: 异或运算是基于二进制的位运算,采用符号XO...

  • 嵌入式C语言的位运算

    想必大家都了解&&(且运算符),||(或运算符),在C语言的位运算中 ,位或运算|,位与运算&,异或^,取反~。等...

  • 7.4-位运算符

    ~ 位反& 位与运算| 位或运算^ 位异运算 即1 0或0 1为true,0 0或1 1为flase>> ...

  • 2018-04-24 Java位运算符

    位[运算符] (4种) 与(&)、非(~)、或(|)、异或(^)与 & 或 | 非~ 异或 ^

  • 图像的加密和解密---OpenCV-Python开发指南(5)

    按位异或 要实现图像的加密与解密,我们首先需要掌握数学中的按位异或计算方式。 异或运算也叫半加运算,其运算法则与不...

网友评论

      本文标题:基础知识位运算-异或

      本文链接:https://www.haomeiwen.com/subject/qcjyohtx.html