AND 汇编:and C语言:& 加密
将每一位进行and运算,若是都是1那么结果为1,不然0数据
AND 0100 1101 C语言: 1 = 77&1计算机
0000 0001语言
----------------------co
0000 0001 能够判断第几位是0仍是1解密
OR 汇编:or C语言 |位运算
将每一位进行or运算,其中一个是1就是1,都是0则为0
XOR 汇编: xor C语言^
将每一位进行xor运算,其中只有一个是1,则为1,都是1或者都是0则为0
Not 汇编: not C语言 ~
将每一位取反就是not运算
计算机是不会作加法的,它是经过位运算作加减乘除
4+5 = ?
0100 0100
0101 先作XOR 异或运算 0101 在作and 与运算
----------------------------------------------------
0001 0100 若是与运算所有都是0,那么结果就是刚才异或的结果,不是则再次异或和and验证结果,而且左移一位
0001 此次是把前面的异或结果和与 运算结果 运算
1000 这里是前面与运算的结果,结果没算完,则要左移一位再次重复前面的步奏,一直到and运算所有为0,那么异或的结果就是最终结果
-------------------
1001
0001 再次and运算 验证结果是否运算完毕
1000
------------
0000 所有是0了,运算完毕,那么结果就是1001 ,1001 对应的十进制就是9,这就是计算机算加法
乘法
3*8 = ?
咱们能够当作8 + 8 +8
那么这样就好办了,利用加法的位运算便可算出乘法,减除同理
用异或进行加密与解密
原数据:5AC
秘钥:45
10101100 00000101
xor 01000101 xor 01000101
---------------- --------------
11101001 01000000
加密后数据为 0100000011101001 40E9
解密:
01000000 11101001
xor 01000101 xor 01000101
--------------------------------------------
00000101 10101100
解密后数据为 0000010110101100 05AC
加密就是和秘钥 进行异或运算,获得加密到的数据,
而后在用秘钥进行异或一算,就是解密的数据