(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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容