取两个数字,左移第一个操作数的位,第二个操作数决定要移动的位置。换句话说,左移动一个整数 x 和一个整数 y ( x < < y )等于 x 乘以 2y
代码示例:
/* C++ Program to demonstrate use of left shift
operator */
#include<stdio.h>
int main()
{
// a = 5(00000101), b = 9(00001001)
unsigned char a = 5, b = 9;
// The result is 00001010
printf("a<<1 = %d\n", a<<1);
// The result is 00010010
printf("b<<1 = %d\n", b<<1);
return 0;
}
输出结果:
a<<1 = 10 b<<1 = 18
2. 右移 >>
取两个数字,向右移动第一个操作数的位,第二个操作数决定移动的位置。同样地,右平移( x > > y )等于x除以 2y.
代码示例:
/* C++ Program to demonstrate use of right
shift operator */
#include<stdio.h>
using namespace std;
int main()
{
// a = 5(00000101), b = 9(00001001)
unsigned char a = 5, b = 9;
// The result is 00000010
printf("a>>1 = %d\n", a>>1);
// The result is 00000100
printf("b>>1 = %d\n", b>>1);
return 0;
}
输出结果:
a>>1 = 2 b>>1 = 4
3. 数字 1 左移 <<
1 << i = 2i。它只适用于正数。
代码示例:
#include<stdio.h>
int main()
{
int i = 3;
printf("pow(2, %d) = %d\n", i, 1 << i);
i = 4;
printf("pow(2, %d) = %d\n", i, 1 << i);
return 0;
}
取两个数字,左移第一个操作数的位,第二个操作数决定要移动的位置。换句话说,左移动一个整数 x 和一个整数 y ( x < < y )等于 x 乘以 2y
代码示例:
/* C++ Program to demonstrate use of left shift
operator */
#include<stdio.h>
int main()
{
// a = 5(00000101), b = 9(00001001)
unsigned char a = 5, b = 9;
// The result is 00001010
printf("a<<1 = %d\n", a<<1);
// The result is 00010010
printf("b<<1 = %d\n", b<<1);
return 0;
}
输出结果:
a<<1 = 10 b<<1 = 18
2. 右移 >>
取两个数字,向右移动第一个操作数的位,第二个操作数决定移动的位置。同样地,右平移( x > > y )等于x除以 2y.
代码示例:
/* C++ Program to demonstrate use of right
shift operator */
#include<stdio.h>
using namespace std;
int main()
{
// a = 5(00000101), b = 9(00001001)
unsigned char a = 5, b = 9;
// The result is 00000010
printf("a>>1 = %d\n", a>>1);
// The result is 00000100
printf("b>>1 = %d\n", b>>1);
return 0;
}
输出结果:
a>>1 = 2 b>>1 = 4
3. 数字 1 左移 <<
1 << i = 2i。它只适用于正数。
代码示例:
#include<stdio.h>
int main()
{
int i = 3;
printf("pow(2, %d) = %d\n", i, 1 << i);
i = 4;
printf("pow(2, %d) = %d\n", i, 1 << i);
return 0;
}