简单来讲所谓的大端存储就是将高字节序的内容存在低地址处,那么,小端存储就是将低字节序的内容存在高地址处。 (图片做以解释)
在计算机中,数据的是以其二进制补码的形式存储于计算机中的,上边又提到了大端存储和小段存储,但是,每台计算机的存储方式又是不一样 的,那么,怎么判断一台计算机是打断存储还是小段存储呢?!
下面就来分装一个函数来实现此功能:
我们知道 1 在计算机中存储的是00000000 00000000 00000000 00000001(补码),其十六进制表示为FF FF FF FF,如果取其地址,
计算机就有可能显示的是:01 00 00 00; ———————— 小端存储
或者:00 00 00 01; ———————— 大端存储
因此,当我们只要知道这个数据存储以后第一位是否为1就可以来判断这台计算机的存储方式是大端存储或者小段存储(当然,这里的数字可以随便给,但是为了方便起见就选1)
int sys_check() { int num = 1; char *p = (char *)# if(*p == 1) return 1; //小端存储 else return 0; //大端存储 } int main() { int num = 1; int ret = sys_check(); if(ret == 1) { printf("little\n"); } else if(ret == 0) { printf("big\n"); } system("pause"); return 0; }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。