概述
1. xor亦或运算
只有在两个比较的位不同时其结果是1,否则结果为0
即“两个输入相同时为0,不同则为1”!
00000000 | 11111111 | 11111111 | 0101 | |
---|---|---|---|---|
xor | 00000000 | 11111111 | 00000000 | 0010 |
结果 | 00000000 | 00000000 | 11111111 | 0111 |
2. and与运算
只有两个位都是1时才为1
即有假(0)即得假(0)
00000000 | 11111111 | 11111111 | 0101 | |
---|---|---|---|---|
and | 00000000 | 11111111 | 00000000 | 0010 |
结果 | 00000000 | 11111111 | 00000000 | 0000 |
3. or或运算
与and运算相逆,只有两个位为0时才得0
即有真(1)即为真(1)
00000000 | 11111111 | 11111111 | 0101 | |
---|---|---|---|---|
or | 00000000 | 11111111 | 00000000 | 0010 |
结果 | 00000000 | 11111111 | 11111111 | 0111 |
4. shl逻辑左移,asl算数左移
这两个运算效果相同,向左移位,右边加补0
5. shr逻辑右移
向右做移位运算,左边补零
6. sar算数右移
当操作数为正数时,移位后左边补0
单操作数为负数时,移位后左边补1(与负数在计算机中的表示是补码有关)
7. shr与sar测试
测试说明:
我在测试时拿16和-16当操作数,所有测试数都做了右移1位的运算。上面是操作数,下面是对应的计算结果,计算结果分别用十进制和二进制表示。
可见对-16逻辑右移之后结果变成了一个非常大的数字,因为最高位补上了0。
最后
以上就是无私毛豆为你收集整理的常用的逻辑运算及其指令的全部内容,希望文章能够帮你解决常用的逻辑运算及其指令所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复