判断一个机器使用的是大端存储还是小端存储
2016-08-06 10:44
603 查看
本文节选自《UNIX网络编程》。
考虑一个16位整数,它由两个字节组成。内存中存储这两个字节有两种方法:一种是将低序字节存储在起始地址,这称为小端(little-endian)字节序;另一种方法是将高序字节存储在起始地址,这称为大端(big-endian)字节序。
下面的程序可以判断一台机器是大端存储还是小端存储。
考虑一个16位整数,它由两个字节组成。内存中存储这两个字节有两种方法:一种是将低序字节存储在起始地址,这称为小端(little-endian)字节序;另一种方法是将高序字节存储在起始地址,这称为大端(big-endian)字节序。
下面的程序可以判断一台机器是大端存储还是小端存储。
#include<stdio.h> int main(int argc, char** argv){ //联合(union)中,所有成员引用的是内存中相同位置, //由具体成员类型决定了这些位如何被解释 union{ short s; char c[sizeof(short)]; } un; un.s = 0x0102; //16进制数中,02是低序字节,01是高序字节 if(sizeof(short)==2){ if(un.c[0]==1 && un.c[1]==2){ printf("big-endian\n"); }else if(un.c[0]==2 && un.c[1]==1){ printf("little-endian\n"); }else{ printf("unknow\n"); } }else{ printf("sizeof(short) = %d\n",sizeof(short)); } return 0; }
相关文章推荐
- 关于大小端的简单介绍以及使用C写一个函数判断当前系统是大端存储还是小端存储
- 写一个函数:判断当前使用的机器是大端还是小端
- 判断一个机器是大端存储还是小端存储
- 写一个程序判断当前系统存储模式是大端还是小端
- 笔试面试7 如何判断一个系统的存储方式是大端还是小端
- 题目:如何判断一个机器是大端还是小端
- 请写一个C函数,判断处理器是大端存储还是小端存储,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1
- 写一个函数判断存储空间是大端还是小端
- 判断电脑系统中一个数是大端存储还是小端
- 一个函数判断你的计算机是小端存储还是大端存储
- 写一个程序判断机器的的数据表示采用的是大端还是小端?
- 如何判断一个机器是大端在前还是小端在前
- C语言判断数据存储时大端模式还是小端模式
- 如何确定一个机器的字节顺序是大端还是小端
- C语言判断数据存储时大端模式还是小端模式
- 如何确定一个机器的字节顺序是大端还是小端
- 如何确定一个机器的字节顺序是大端还是小端
- 如何判断机器是大端还是小端
- 判断当前编译器是大端存储还是小端存储
- C语言——判断存储类型是大端还是小端