使用C语言,利用位运算将长整型数0X12345678的高八位与低八位互换,次高八位与次低八位互换
时间: 2023-05-25 20:07:11 浏览: 109
功能简单的输入输出的单片机-C10S011八位单片机
```
#include <stdio.h>
int main() {
unsigned long long x = 0x12345678;
unsigned long long h1, l1, h2, l2;
h1 = (x >> 24) & 0xFF;
l1 = x & 0xFF;
h2 = (x >> 8) & 0xFF00;
l2 = (x << 8) & 0xFF0000;
x = h1 | l1 << 24 | h2 | l2 >> 8;
printf("%llx\n", x);
return 0;
}
```
解释:将长整型数x的高8位和低8位分别取出,赋值给h1和l1;将次高8位和次低8位分别取出,赋值给h2和l2。然后将h1移位到变量x的低8位位置,将l1移位到变量x的高24位位置,将h2移位到变量x的次低8位位置,将l2移位到变量x的次高8位位置。最后将这4个值组合起来,赋值回x变量中,完成高8位和低8位的互换,次高8位和次低8位的互换。输出x的值即可。
阅读全文