常用的逻辑运算及其指令

2 篇文章 0 订阅
1 篇文章 0 订阅
1. xor亦或运算

只有在两个比较的位不同时其结果是1,否则结果为0
即“两个输入相同时为0,不同则为1”!

0000000011111111111111110101
xor0000000011111111000000000010
结果0000000000000000111111110111
2. and与运算

只有两个位都是1时才为1
即有假(0)即得假(0)

0000000011111111111111110101
and0000000011111111000000000010
结果0000000011111111000000000000
3. or或运算

与and运算相逆,只有两个位为0时才得0
即有真(1)即为真(1)

0000000011111111111111110101
or0000000011111111000000000010
结果0000000011111111111111110111
4. shl逻辑左移,asl算数左移

这两个运算效果相同,向左移位,右边加补0

5. shr逻辑右移

向右做移位运算,左边补零

6. sar算数右移

当操作数为正数时,移位后左边补0
单操作数为负数时,移位后左边补1(与负数在计算机中的表示是补码有关)

7. shr与sar测试

这里写图片描述

测试说明:
  我在测试时拿16和-16当操作数,所有测试数都做了右移1位的运算。上面是操作数,下面是对应的计算结果,计算结果分别用十进制和二进制表示。
  可见对-16逻辑右移之后结果变成了一个非常大的数字,因为最高位补上了0。

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值