计算机基础知识 异或

异或,是一个数学运算符,英文为exclusive OR,缩写为xor,应用于逻辑运算

参与运算的两个值,如果两个相应bit位值相同,则结果为0,否则为1,简单概况就是不同为1,相同为0.

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

 

按位异或的3个特点:

0异或任何数=任何数

1异或任何数-任何数取反

任何数异或自己=把自己置0

 

按位异或的几个常见用途:

1) 使某些特定的位翻转,10100001^00000110 = 10100111,也就是把从右向左的,第2和3位翻转为1

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

a = a^b; // 此时a是两数异或后的值

b = b^a; // 异或后的值和b异或,那么得到是原始a的值

a = a^b;// 此时b是原来a的值,a还是异或后的值,那么继续异或后得到的是原始b的值

 

3) 在汇编语言中经常用于将变量置零,自己异或自己置为0:

xor a,a

4) 快速判断两个值是否相等,(a ^ b) == 0

5) 应用通式:对两个表达式执行按位异或。result = expression1 ^ expression2,,,常用于简单的加密解密,使用固定或者可变key值,两次异或,实现加密,解密

 

posted @ 2020-09-09 15:58  K1_大大  阅读(1054)  评论(0编辑  收藏  举报