把一个 16 位的无符号数 a 的高低字节互换,c语言
时间: 2024-11-09 08:31:40 浏览: 18
在C语言中,如果你想要将一个16位无符号整数a的高位字节和低位字节交换,你可以通过位运算来实现。下面是一个简单的函数,它接受一个unsigned short类型的变量作为输入,并返回一个新的变量,其字节顺序已反转:
```c
#include <stdio.h>
unsigned short swapBytes(unsigned short a) {
return (a << 8) | (a >> 8);
}
int main() {
unsigned short original = 0xABCDEF; // 假设原始值
unsigned short swapped = swapBytes(original);
printf("Original value: %04X\n", original); // 输出原值(先高位)
printf("Swapped value: %04X\n", swapped); // 输出交换后的值(高位在前)
return 0;
}
```
在这个例子中,`a << 8`左移一位相当于把低位字节移动到了最高位,而`a >> 8`右移一位则把高位字节移动到了最低位。
阅读全文