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

被折叠的 条评论
为什么被折叠?



