博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(二)位运算,计算机不会做加法
阅读量:6947 次
发布时间:2019-06-27

本文共 1093 字,大约阅读时间需要 3 分钟。

 

AND    汇编:and C语言:&

将每一位进行and运算,如果都是1那么结果为1,否则0

 

AND   0100 1101              C语言:  1 = 77&1

           0000 0001

----------------------

          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

 

加密就是和秘钥 进行异或运算,得到加密到的数据,

然后在用秘钥进行异或一算,就是解密的数据

 

 

 

 

 

转载于:https://www.cnblogs.com/A-sync/p/6198218.html

你可能感兴趣的文章
flashcache的实现与分析
查看>>
[UML]UML系列——状态机图statechart diagram
查看>>
微信公众平台开发(74) 用户分组管理
查看>>
二、jdk命令之javah命令(C Header and Stub File Generator)
查看>>
ios模拟器未能安装此应用程序
查看>>
站长常用的200个js代码 站长常用js代码大全 站长常用js代码集合
查看>>
HBase eclipse开发环境搭建
查看>>
SQL Server - 把星期一(周一)当作每个星期的开始在一年中求取周数
查看>>
【ASP.NET Web API教程】6.2 ASP.NET Web API中的JSON和XML序列化
查看>>
jquery-alert对话框
查看>>
WIN8系统安装软件时提示"扩展属性不一致"的解决方法
查看>>
sqlite3.exe 使用
查看>>
微软职位内部推荐-Senior Software Engineer
查看>>
CAD中批量打印
查看>>
蛋疼的Apple IOS Push通知协议
查看>>
MyEclipse10.0 安装 jbpm4.4
查看>>
批处理复制文件(文件夹)排除某目录,某些类型(草稿)
查看>>
【转】shell 编程:冒号 后面跟 等号,加号,减号,问号的意义
查看>>
C#编写COM组件
查看>>
C#属性(Attribute)用法实例解析
查看>>