C语言中将高字节转化为地字节,地字节转化为高字节

来源:百度知道 编辑:UC知道 时间:2024/05/04 12:37:51
二进制数 将高8位与低8位进行互调!

因为你说的是高8位和低8位 而不是高16位,低16位,所以我假设你用的是16的整数,程序如下,里面return的那一行的位运算就是你要的。

下面的程序tc2.0 , vs2008可用
#include <stdio.h>

short swap(short num)
{
return ((num >> 8) & 0xFF) | ((num << 8) & 0xFF00);
}

int main()
{
short a = 0x1234;
short b = swap(a);

printf("%x,%x",a,b);
}

另外附带一个32位数的高16位转低16位的,这个tc2.0运行结果会不正确,请使用其他的32位编译器,如vs2008

#include <stdio.h>

long swap(long num)
{
return ((num >> 16) & 0xFFFF) | ((num << 16) & 0xFFFF0000);
}

int main()
{
long a = 0x12345678;
long b = swap(a);

printf("%x,%x",a,b);
}

a = a>>8 + a<<8