大小端判断函数:
//判断大小端字节序
void judgeEndian()
{
int num = 0x01020304;
char* pchar = (char*)#
if(*pchar==0x01)
{
printf("the endian is Big-Endian\n");
}else if(*pchar==0x04)
{
printf("the endian is little-Endian\n");
}else
{
printf("other-Endian\n");
}
}
字节序转化:
//改变数字num的字节序
//如果是大端转化为小端
//如果是小端转化为大端
int changeEndian(int num)
{
int d = num&0xff;
num>>=8;
int c = num&0xff;
num>>=8;
int b = num&0xff;
num>>=8;
return (d<<24)|(c<<16)|(b<<8)|num;
}
完整版测试代码:
#include <stdio.h>
#include <stdlib.h>
//判断大小端字节序
void judgeEndian()
{
int num = 0x01020304;
char* pchar = (char*)#
if(*pchar==0x01)
{
printf("the endian is Big-Endian\n");
}else if(*pchar==0x04)
{
printf("the endian is little-Endian\n");
}else
{
printf("other-Endian\n");
}
}
//改变数字num的字节序
//如果是大端转化为小端
//如果是小端转化为大端
int changeEndian(int num)
{
char* p = (char*)#
int d = (*p++)&0xff;
int c = (*p++)&0xff;
int b = (*p++)&0xff;
int a = *p;
return (d<<24)|(c<<16)|(b<<8)|a;
}
int main()
{
judgeEndian();
int num = 0x11223344;
printf("before change endian , num = 0x%x\n",num);
printf("after change endian , num = 0x%x\n",changeEndian(num));
return 0;
}

转载请注明:晋坤 的博客 » 大小端判断以及字节序转化