使用C语言给定一个unsigned short型数据12345, 进行左移 2 位和右移 2 位操作。并用十进制和十六进制输出
时间: 2024-03-23 15:43:28 浏览: 152
C语言编程技术实践2020版 数据右循环移位操作.docx
可以使用左移运算符 `<<` 和右移运算符 `>>` 分别对无符号短整型数据进行左移和右移操作。左移两位可以写成 `2`,右移两位同理。代码如下:
```c
#include <stdio.h>
int main() {
unsigned short data = 12345;
// 左移两位
data = data << 2;
printf("左移两位:\n");
printf("十进制输出:%u\n", data);
printf("十六进制输出:%x\n\n", data);
// 右移两位
data = data >> 2;
printf("右移两位:\n");
printf("十进制输出:%u\n", data);
printf("十六进制输出:%x\n", data);
return 0;
}
```
输出结果为:
```
左移两位:
十进制输出:49380
十六进制输出:c0e4
右移两位:
十进制输出:12345
十六进制输出:3039
```
注意,左移操作会使数据乘以 `2` 的移位次幂,右移操作会使数据除以 `2` 的移位次幂。因此,左移两位相当于乘以 `4`,右移两位相当于除以 `4`。
阅读全文