标签:9.png 编译 amp 变量 运行 idt 加法 efi 语言
C语言中的位运算符:
C语言中的位运算效率是最高的。比四则运算效率高很多。
左移和右移:
右操作数超出范围后,行为是不确定的。
有趣的问题:
示例程序如下:
运行结果如下:
从结果可以看出,第8行的混合运算先算的是加法。
vc编译器的输出结果如下:
bcc编译器的输出结果如下:
小贴士:
交换两个变量的值:
1 #include <stdio.h> 2 3 #define SWAP1(a, b) 4 { 5 int t = a; 6 a = b; 7 b = t; 8 } 9 10 #define SWAP2(a, b) 11 { 12 a = a + b; 13 b = a - b; 14 a = a - b; 15 } 16 17 #define SWAP3(a, b) 18 { 19 a = a ^ b; 20 b = a ^ b; 21 a = a ^ b; 22 } 23 24 int main() 25 { 26 int a = 1; 27 int b = 2; 28 29 30 printf("a = %d\n", a); 31 printf("b = %d\n", b); 32 33 SWAP3(a ,b); 34 35 printf("a = %d\n", a); 36 printf("b = %d\n", b); 37 38 return 0; 39 }
SWAP1会借助于第三个变量,SWAP2会有隐患,a或者b非常大的时候会造成溢出。
运行结果如下:
位运算与逻辑运算:
示例如下:
1 #include <stdio.h> 2 3 int main() 4 { 5 int i = 0; 6 int j = 0; 7 int k = 0; 8 9 if( ++i | ++j & ++k ) 10 { 11 printf("Run here...\n"); 12 } 13 14 return 0; 15 }
运行结果如下:
这里的++i,++j,++k都会得到执行,因为它们之间使用的是位运算符,没有短路规则。
小结:
标签:9.png 编译 amp 变量 运行 idt 加法 efi 语言
原文地址:https://www.cnblogs.com/wanmeishenghuo/p/9535770.html