69,368
社区成员
发帖
与我相关
我的任务
分享
int is_bigendian() //判断机器字节序
{
unsigned short num = 0x55aa; //0x55是num的高位,0xaa是num的低位
char *p = (char *)# //让p指向num的低地址
if(*p == 0x55) //若低地址的值是0x55的话,即是大端字节序
{
return 0;
}
else //反之....
{
return 1;
}
}
#include <stdio.h>
int is_bigendian(void);
int main()
{
// unsigned char a[2] = {0x00, 0xf1};
unsigned char a[2] = {0x01, 0xf1};
short int *p;
int result;
if(is_bigendian == 0)
{
p = (short int *)&a[0];
}
else
{
// printf("Swap.\n");
/*swap ..*/
a[0] = a[0] + a[1];
a[1] = a[0] - a[1];
a[0] = a[0] - a[1];
p = (short int *)&a[0];
}
result = *p;
printf("0x%x\n", result);
return 0;
}
int is_bigendian()
{
short int n = 0x55aa;
char *p;
p = (char *)&n;
if(*p == 0x55)
return 0;
else
return 1;
}
unsigned char a[2];
a[0]=0x01;
a[1]=0xf1;
int i = 0;
i += (a[0]<<8);
i += a[1];
long HexToDem(unsigned long HexNum)
{
long DemNum=0;
char string[8];
sprintf(string,"%ld",HexNum);
DemNum=atol(string);
return DemNum;
}