二进制运算小结
来源:互联网 发布:linux 修改profile 编辑:程序博客网 时间:2024/04/30 18:04
最近在看密码学的书籍,对二进制运算提起了兴趣,今晚总结了一下感觉别有所获.
A,B两个数进行位运算,情况如下:
A
B
0
1
或
与
异或
或
与
异或
0
0
0
0
1
0
1
1
1
0
1
1
1
0
由上表总结一下两个比特流AB二进制运算的规律:
A|B,B比特位为1的位置对应的A处比特用1代替,其余比特不变;
A&B,B比特位为0的位置对应A处比特用0代替,其余比特不变;
A^B,B比特位为1的位置对应A处比特取反,其余比特不变;
显然AB交换顺序不影响运算结果,但三种运算之间顺序不能交换.
如果把AB之间的运算看作数据的加密,那么或和与操作都损失了一部分信息,是不可恢复的(因为原文A中一些比特被覆盖了).而且”与”和”或”丢失的那部分信息正好可以互补,也就是
A|B+A&B-B=A
这可以用来设计加密算法,计算A|B+A&B的值作为密文C,而B作为密钥K,解密时用C-K即可获得明文A.由于B是随机的,所以算法也是安全的.异或则是可逆的,所以最常用来加密信息.因为异或只是反转了明文中的某些比特位而已,要想恢复A则只需异或两次即可
A^B^B=A
A^0=A
A^0xFF=~A(假设A为单字节)
另外偶数个1异或为0,奇数个1异或为1,0比特对异或运算是透明的
0 0
- 二进制运算小结
- 关于二进制和位运算(小结)
- 二进制运算
- 二进制运算
- 二进制运算
- 二进制运算
- 二进制运算
- 二进制运算
- 二进制运算
- 二进制运算
- 二进制运算 移位运算
- 二进制,位运算,移位运算
- 二进制,十六进制运算
- 二进制的运算方法
- 二进制补码运算公式
- 二进制补码运算(转)
- 二进制 补码 运算
- 二进制移位运算符
- SEO中的同比点击率之我见
- seo中的图片优化
- C++小知识之指针和引用的区别
- seo中的描述优化
- socket 通信原理
- 二进制运算小结
- tomcat服务器安装与配置
- Group Sparse Coding For Face Recognition
- Android的padding和margin区别
- C#中引用javascript编写的网页,并使javascript调用C#中的Textbox控件
- Linux Centos6.4 用户本地不能登录
- Pig Latin基础2 函数清单
- 关于fork和缓冲区的问题
- ubuntu 12.04新安装好后需要进行的包升级和清理工作