c语言 c语言移位

c语言移位运算符怎么使用

小亿
140
2023-07-06 01:11:37
栏目: 编程语言

C语言中的移位运算符有左移运算符(<<)和右移运算符(>>)。

左移运算符(<<)将一个数的二进制表示向左移动指定的位数,并在右侧用0填充。移动后的结果等于原数乘以2的移动位数次方。

例如,对于整数变量x和y,x << y表示将x的二进制表示向左移动y位。

右移运算符(>>)将一个数的二进制表示向右移动指定的位数,并根据符号位进行填充。如果数是正数,则右移后在左侧用0填充;如果数是负数,则右移后在左侧用1填充。移动后的结果等于原数除以2的移动位数次方(向下取整)。

例如,对于整数变量x和y,x >> y表示将x的二进制表示向右移动y位。

以下是使用移位运算符的示例:

#include <stdio.h>
int main() {
int x = 10; // 二进制表示为 0000 1010
// 左移运算符
int y = x << 2; // 将x向左移动2位,结果为 0010 1000
printf("左移运算结果: %d\n", y);
// 右移运算符
int z = x >> 1; // 将x向右移动1位,结果为 0000 0101
printf("右移运算结果: %d\n", z);
return 0;
}

输出结果为:

左移运算结果: 40
右移运算结果: 5

请注意,移位运算符只能用于整数类型,不能用于浮点数类型。

0
看了该问题的人还看了