深入理解按位异或运算符
来源:互联网 发布:linux 端口映射工具 编辑:程序博客网 时间:2024/04/28 23:55
参与运算的两个值,如果两个相应bit位相同,则结果为0,否则为1。
即:
0^0 = 0,
按位异或的3个特点:
(1) 0^0=0,0^1=1
(2) 1^0=1,1^1=0
(3) 任何数异或自己=把自己置0
按位异或的几个常见用途:
(1) 使某些特定的位翻转
(2) 实现两个值的交换,而不必使用临时变量。
a = a^b; //a=10100111
b = b^a; //b=10100001
a = a^b; //a=00000110
(3) 在汇编语言中经常用于将变量置零:
(4) 快速判断两个值是否相等
5
对两个表达式执行按位异或。
result = expression1 ^ expression2
参数
result
任何变量。
expression1
任何表达式。
expression2
任何表达式。
说明
^ 运算符查看两个表达式的二进制表示法的值,并执行按位异或。该操作的结果如下所示:
0101
只能用于整数
下面这个程序用到了“按位异或”运算符:
class E
{ public static void main(String args[ ])
{
}
}
就是加密啊解密啊
char类型,也就是字符类型实际上就是整形,就是数字.
计算机里面所有的信息都是整数,所有的整数都可以表示成二进制的,实际上计算机只认识二进制的.
位运算就是二进制整数运算啦.
两个数按位异或意思就是从个位开始,一位一位的比.
如果两个数相应的位上一样,结果就是0,不一样就是1
所以111^101=010
那加密的过程就是逐个字符跟那个secret字符异或运算.
解密的过程就是密文再跟同一个字符异或运算
010^101=111
至于为什么密文再次异或就变原文了,这个稍微想下就知道了..
- [Misc] 深入理解按位异或运算符
- 深入理解按位异或运算符
- 深入理解按位异或运算符
- 深入理解按位异或运算符
- 深入理解按位异或运算符
- 深入理解按位异或运算符
- 深入理解按位异或运算符
- 深入理解按位异或运算符
- 深入理解按位异或运算符
- 深入理解按位异或运算符
- C# 深入理解按位异或运算符^
- 深入理解按位异或运算符
- 深入理解按位异或运算符
- 深入理解按位异或运算符
- 深入理解按位异或运算符
- 深入理解按位异或运算符
- 深入理解按位异或运算符
- 深入理解按位异或运算符
- [深入理解Java虚拟机]第三章 垃圾收集器及相关参数
- java io 读写对象
- 第6周项目1 - 建立顺序栈算法库
- 初学NPOI
- 学习计划
- 深入理解按位异或运算符
- iOS开发分分钟搞定C语言 —— 进制
- leetcode206 Reverse Linked List
- Allods IP
- QT5 学习之路25---画刷和画笔
- 删除多级文件夹的程序,很好用
- 堆和栈深层理解
- 【RMQ问题】poj 3368 Frequent values
- 黑马程序员—String、StringBuffer、StringBuilder