大端小端:测试本机的数据存储形式

小端:数据的低位 保存在 低地址

大端:    

      这种数据存储方法上的差别不是由操作系统造成的,而是由处理器体系结构造成的。

  1 #include <stdio.h>
  2 
  3 int main(int argc, char *argv[])
  4 {
  5         int a = 0x12345678;
  6         char *p = (char *)&a;
  7         if(*p = 0x78)
  8                 printf("little endian\n");
  9         else
 10                 fprintf(stdout, "big endian\n");
 11 
 12         return 0;
 13 }

  1 #include <stdio.h>
  2 
  3 /* 数据存储形式测试函数,大端法返回0,小端法返回1 */
  4 int test_endian(void)
  5 {
  6         int a = 0x12345678;     // 测试用的数据
  7         char *p= (char *)&a;    // 转换为字符型数据的指针
  8     
  9         if(*p == 0x78)  // 判断最低一个字节的顺序
 10                 return 1;
 11         return 0;
 12 }
 13 
 14 int main(int argc, char *argv[])
 15 {
 16         if(test_endian() == 1)  // 小端法
 17         {
 18                 /* 相应的操作 */
 19         }
 20         else    // 大端法
 21         {
 22                 /* 相应的操作 */
 23         }
 24         return 0;
 25 }

验证网络字节序为big-endian大端字节序

  1 #include <stdio.h>
  2 
  3 int main(int argc, char *argv[])
  4 {
  5         int a = 0x12345678;
  6         int b = htonl(a);
  7         char *p = (char *)&b;
  8         if((int)*p == 0x78)
  9                 printf("little-endian\n");
 10         else if((int)(*p) == 0x12)
 11                 printf("big-endian\n");
 12         else
 13                 printf("unkonwn\n");
 14 
 15         return 0;
 16 }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值