测试平台大端还是小端(网络字节序和主机字节序)
2015-12-29 15:37
441 查看
大端和小端(网络字节序和主机字节序)
大端(Big Endian):即网络字节序。
小端(Littile Endian):即主机字节序。
记忆方式:网络的范围很大,所以大端是网络字节序。
大端方式将高位存放在低地址,小端方式将低位存放在高地址。
采用大端方式进行数据存放符合人类的正常思维,而采用小端方式进行数据存放利于计算机处理。
如果将一个32位的整数0x12345678存放到一个整型变量(int)中,这个整型变量采用大端或者小端模式在内存中的存储由下表所示。
为简单起见,本书使用OP0表示一个32位数据的最高字节MSB(Most Significant Byte),使用OP3表示一个32位数据最低字节LSB(Least Significant Byte)。
---------------------------
地址偏移 大端模式 小端模式
0x00 12(OP0) 78(OP3)
0x01 34(OP1) 56(OP2)
0x02 56(OP2) 34(OP1)
0x03 78(OP3) 12(OP0)
可用如下代码 测试
大端(Big Endian):即网络字节序。
小端(Littile Endian):即主机字节序。
记忆方式:网络的范围很大,所以大端是网络字节序。
大端方式将高位存放在低地址,小端方式将低位存放在高地址。
采用大端方式进行数据存放符合人类的正常思维,而采用小端方式进行数据存放利于计算机处理。
如果将一个32位的整数0x12345678存放到一个整型变量(int)中,这个整型变量采用大端或者小端模式在内存中的存储由下表所示。
为简单起见,本书使用OP0表示一个32位数据的最高字节MSB(Most Significant Byte),使用OP3表示一个32位数据最低字节LSB(Least Significant Byte)。
---------------------------
地址偏移 大端模式 小端模式
0x00 12(OP0) 78(OP3)
0x01 34(OP1) 56(OP2)
0x02 56(OP2) 34(OP1)
0x03 78(OP3) 12(OP0)
可用如下代码 测试
int i=0x12345678; char*p = (char *)&i; if(*p == 0x78) { printf("Litle endian\n"); } printf("p=%p\n",&p);//当前指针变量的值(指向的地址) p++;//指针自增 printf("p++之后,p=%p\n",&p);//验证指针自增以后的值(重新指向的地址) if(*p == 0x56) printf("Litle endian\n"); printf("sizeof(p)=%lu \n",sizeof(p)); //测试指针变量所占的字节数,in fact,在win32平台上,任何类型的指针变量所占的字节数均为4. p =NULL;
相关文章推荐
- java之TCP协议
- https证书生成命令记录
- 在WordPress中实现发送http请求的相关函数解析
- HTTP笔记(五)HTTP报文
- Node.js Http 介绍
- 《UNIX网络编程》TCP网络编程基础(1)
- java发送https的请求
- Android 网络请求详解
- Android 网络请求详解
- CDN技术原理
- Neutron与Nova的网络逻辑关系---Neutron节点网络逻辑关系(二)
- 配置使用连接池的httpClient
- socket 连接的建立
- HTTP 错误 401.3 - Unauthorized asp.net mvc 图片,css,js没有权限访问
- iOS安全系列之一:HTTPS (轉載)
- codeforcese 498C. Array and Operations 网络流
- The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar
- Web Service 使用时出现 HTTP Status 401: Unauthorized
- java使用http创建https连接,并且使用http实现webservice服务端
- 三种方法实现移动端HTTPS加速和省电