写一个函数判断存储空间是大端还是小端

论坛 期权论坛 脚本     
匿名网站用户   2020-12-20 00:17   64   0

判断存储空间是大端还是小端

我们常用的x86结构都是小端模式,而大部分DSP,ARM也是小端模式,不过有些ARM是可以选择大小端模式。所以对于上面的maxHeight是应该以小端模式来存放,具体情况请看下面两表。
小端模式:


大端模式:


通过上面的表格,可以看出来大小端的不同,在这里无法讨论那种方式更好,个人觉得似乎大端模式更符合我的习惯。
(注:在这里我还要说一句,其实在计算机内存中并不存在所谓的数据类型,比如char,int等的。
这个类型在代码中的作用就是让编译器知道每次应该从那个地址起始读取多少位的数据,赋值给相应的变量。

指针法:

<span style="font-size:14px;color:#ff0000;">
<span style="font-size:24px;">#include<stdio.h>
//int chese(int num)
//{
// char *p=&num;
// while(*p==1)
// {
// return 1;
// }
// return 0;
//}
//
//int main()
//{
// int num=1;int ret=0;
// ret=chese(num);
// if(ret==1)
// {
// printf("little\n");//小端
// }
// else
//printf("big\n");//大端
// system("pause");
//return 0;
//}</span>
</span>

联合共用体法

#include <stdio.h>
//int main()
//{
//    int i;
//    union endian
//    {
//        int data;
//        char ch;
//    }test;
//    test.data = 0x12345678;
//    if(test.ch == 0x78)
//    {
//        printf("小端!\n");
//    }
//    else
//    {
//        printf("大端!\n");
//    }
// 
//    for(i=0; i<4; i++)
//    {
//        printf("%#x ------- %p\n",*((char *)&test.data + i),(char *)&test.data + i);
//    }
// system("pause");
//    return 0;
//}
运行结果:



分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1136255
帖子:227251
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP