看APUE的网络编程部分,讲解字节序时发现自己总是忘记大端法和小端法,总是记混,写了个程序,num = 0x01234567;如果0x67对应的地址是小地址即为小端法,否则为大端法
见程序:
#include<stdio.h>
int main()
{
int i = 0;
int num = 0x01234567;
char *p = (char *)&a;
printf("num = 0x%08x\n", num);
for(i=0; i<4; i++)
{
printf("addr = %08x, value = %02x\n", (unsigned int)p, (int)*p);
p++;
}
return 0;
}
输出结果:
ustcqi@ubuntu:~/workplace/linux/APUE/SOCKET$ gcc -o getByteSeq getByteSeq.c
ustcqi@ubuntu:~/workplace/linux/APUE/SOCKET$ ./getByteSeq
num = 0x01234567
addr = bf8bf314, value = 67
addr = bf8bf315, value = 45
addr = bf8bf316, value = 23
addr = bf8bf317, value = 01