C 语言中的移位运算是什么?
问题
用 C 语言编写一个简单的程序来显示一个数字的左移、右移和补码。
解决方案
左移
如果将变量值左移一次,则其值会加倍。
例如,a = 10,则 a<<1 = 20
右移
如果将变量值右移一次,则其值变为原值的二分之一。
例如,a = 10,则 a>>1 = 5
示例
以下是进行移位运算的 C 程序 −
#include<stdio.h> main (){ int a=9; printf("Rightshift of a = %d
",a>>1);//4// printf("Leftshift of a = %d
",a<<1);//18// printf("Compliment of a = %d
",~a);//-[9+1]// printf("Rightshift by 2 of a = %d
",a>>2);//2// printf("Leftshift by 2 of a = %d
",a<<2);//36// }
输出
当执行上述程序时,它会产生以下结果 −
Rightshift of a = 4 Leftshift of a = 18 Compliment of a = -10 Rightshift by 2 of a = 2 Leftshift by 2 of a = 36
广告