源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

判断机器大小端的两种实现方法

  • 时间:2020-03-24 17:17 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:判断机器大小端的两种实现方法
第一种方法 思路:利用指针的强制类型转换
[u]复制代码[/u] 代码如下:
#include <stdio.h> int main(void) {    int data1 = 0x12345678;   int i;   for(i=0; i<4; i++)  {       printf("%#x ----->%p\n",*((char *)&data1 + i),(char *)&data1 + i);   }     return 0; }
[img]http://files.jb51.net/file_images/article/201303/201333143901454.png[/img] 从输出的结果可以看出,高位地址0xbfc1b1ff存的是数据的高位0x12,低位地址0xbfc1b1fc存的是数据的低位0x78。所以是小端。同时我们亦可以看到,对数据data取地址实际指向的是存放低位数据的空间。 第二种方法 思路:利用共用体所有数据都从同一地址开始存储。
[u]复制代码[/u] 代码如下:
#include <stdio.h> int main(void) {     int i;     union endian     {         int data;         char ch;     }test;     test.data = 0x12345678;     if(test.ch == 0x78)     {         printf("little endian!\n");     }     else     {         printf("big endian!\n");     }       for(i=0; i<4; i++)     {         printf("%#x ------- %p\n",*((char *)&test.data + i),(char *)&test.data + i);     }     return 0; }
[img]http://files.jb51.net/file_images/article/201303/201333144511215.png[/img]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部