比特移位和逻辑运算之优先级

本文通过一个简单的C语言程序示例介绍了位运算的基本概念及应用。该程序演示了左移和按位或运算的组合使用,并展示了如何通过GCC编译器进行编译运行。此外,还提供了编译和运行结果,以及反汇编代码,帮助读者理解程序的执行流程。

#include <stdio.h>

int main(int argc, char *argv[])
{
        int value = 2;

        return  value<<2|3;
}

编译:

 [root@localhost misc]#gcc -o bit_or_level bit_or_level.c

[root@localhost misc]# ./bit_or_level
[root@localhost misc]# echo $?
11
[root@localhost misc]#

[root@localhost misc]#objdump -d bit_or_level

08048354 <main>:
 8048354:   8d 4c 24 04             lea    0x4(%esp),%ecx
 8048358:   83 e4 f0                and    $0xfffffff0,%esp
 804835b:   ff 71 fc                pushl  0xfffffffc(%ecx)
 804835e:   55                      push   %ebp
 804835f:   89 e5                   mov    %esp,%ebp
 8048361:   51                      push   %ecx
 8048362:   83 ec 10                sub    $0x10,%esp
 8048365:   c7 45 f8 02 00 00 00    movl   $0x2,0xfffffff8(%ebp)
 804836c:   8b 45 f8                mov    0xfffffff8(%ebp),%eax
 804836f:   c1 e0 02                shl    $0x2,%eax
 8048372:   83 c8 03                or     $0x3,%eax
 8048375:   83 c4 10                add    $0x10,%esp
 8048378:   59                      pop    %ecx
 8048379:   5d                      pop    %ebp
 804837a:   8d 61 fc                lea    0xfffffffc(%ecx),%esp
 804837d:   c3                      ret
 804837e:   90                      nop
 804837f:   90                      nop

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值