(32位汇编 二)二进制的逻辑运算

1. 或(or |)

只要有一个为1,就为1。

2. 与(and &)

两个都为1,就为1。

3. 异或(xor ^)

两个不一样时,就为1。

4. 非(not !)

1是0,0是1。

提示: CPU计算的本质就是逻辑运算


逻辑运算的具体应用

1. CPU如何计算2 + 3
图1 cpu如何实现2 + 3
图1 cpu如何实现2 + 3
2. 如何获取某个值的第n位的(二进制)值是多少?
例如:如何获取0x8F的第3位的二进制值是多少?(在16位机器上)
方法解析:
1. 先取0000 0000,然后将第3位设置为1,即0000 0100
2. 将0x8F用二进制表示 1000 1111
3. 将两个二进制进行‘与’运算
        1000 1111
    &   0000 0100
-----------------------
        0000 0100
4. 看‘与’的结果的第n位是多少,则原数中第n位的二进制值就是多少

3. 最简单的加密算法
条件:在16位机器上
要加密的数据:2017
密钥:9
每两位进行一次加密
    0010 0000                0001 0111
^   0000 1001           ^    0000 1001
------------------      ------------------------
    0010 1001                0001 1110
加密结果:29                     1E

    0010 1001                0001 1110
^   0000 1001           ^    0000 1001
------------------      ------------------------
    0010 0000                0001 0111
解密结果:20                      17

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值