C语言高低位互换程序
时间: 2024-08-14 15:03:54 浏览: 48
C语言程序设计-火车订票系统
5星 · 资源好评率100%
在C语言中,高位和低位互换通常用于字节级别的数据处理,例如整数、字符数组等,因为计算机中的存储是按二进制位进行的。假设我们要交换两个整数值的字节,可以编写如下的程序:
```c
#include <stdio.h>
// 定义一个函数来高位低位互换整数
void swapBytes(unsigned char* bytes, int size) {
for (int i = 0; i < size / 2; ++i) {
unsigned char temp = bytes[i];
bytes[i] = bytes[size - i - 1]; // 交换第i和第size-i-1位置的字节
bytes[size - i - 1] = temp;
}
}
int main() {
unsigned int num = 0x12345678; // 假设要交换的16位整数
unsigned char bytes;
// 将整数转换为字节数组并存储
memcpy(bytes, &num, sizeof(num));
printf("Original number: %u\n", num);
swapBytes(bytes, sizeof(num)); // 调用函数进行字节交换
num = *(unsigned int*)bytes; // 再将字节数组转换回整数
printf("Swapped number: %u\n", num);
return 0;
}
```
在这个例子中,`swapBytes`函数接受一个指向字节的指针和一个大小(以字节计),然后遍历并交换指定长度内的字节。在`main`函数中,我们首先读取一个整数到字节数组,然后调用`swapBytes`,最后将交换后的字节数组再转换回整数。
阅读全文