大端(Big-Endian)和小端(Little-Endian)
来源:互联网 发布:淘宝同学课程助手 编辑:程序博客网 时间:2024/06/05 07:45
大端(Big-Endian)和小端(Little-Endian)
采用大小模式对数据进行存放的主要区别在于在存放的字节顺序,大端方式将高位存放在低地址,小端方式将高位存放在高地址。采用大端方式进行数据存放符合人类的正常思维,而采用小端方式进行数据存放利于计算机处理。
比如0x3132的存放形式
大端模式:31 32 //符合人类的正常思维
小端模式:32 31
互联网使用的网络字节顺序采用大端模式进行编址,而主机字节顺序根据处理器的不同而不同,如PowerPC处理器使用大端模式,而Pentuim处理器使用小端模式。
示例1:
#include<stdio.h>int main(void ){shorttest;test= 0x3132;char*c = (char *)&test;inti;for(i= 0; i < sizeof(short); ++i){printf("%x", *c++);}printf("\n");return0;}
运行结果:
32 31
证明我的处理器是小端模式
示例2: 用gdb查看变量地址的内容
#include<netdb.h>#include<sys/socket.h>#include<stdio.h>intmain(int argc, char **argv){shorta = 0x0102;shortb = htons(a);return0;}
用gdb进行调试
(gdb)x/2xb &a //gdb调试命令:x/<n/f/u><addr>
0xbffff39e: 0x02 0x01 //再次证明我的处理器是小端模式
(gdb)x/2xb &b
0xbffff39c: 0x01 0x02
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
原文:http://www.52rd.com/Blog/Detail_RD.Blog_imjacob_14837.html
- 小端(Little Endian) 大端(Big Endian)
- 大端(big endian)小端(little endian)
- 大端Big-Endian 、小端Little-Endian
- 分析 大端(Big Endian)和小端(Little Endian)
- little-endian & big-endian 大端 和 小端
- 大端小端(Big- Endian和Little-Endian)
- 大端小端(Big- Endian和Little-Endian)
- 大端(Big-Endian)和小端(Little-Endian)
- 大端小端(Big- Endian和Little-Endian)
- 大端和小端(Big endian and Little endian)
- 大端小端Big-endian和little-endian(转载)
- 大端小端(Big- Endian和Little-Endian)
- 大端小端(Big- Endian和Little-Endian)
- 大端[big endian]和小端[Little endian]
- 大端小端(Big- Endian和Little-Endian)
- 大端小端(Big- Endian和Little-Endian)
- 大端小端(Big- Endian和Little-Endian)
- 大端小端(Big- Endian和Little-Endian)
- LIB和DLL的区别与使用
- epoll精髓
- Discriminatively Trained Deformable Part Models + Windows(一)
- Android SDK工具:使用layoutopt进行布局优化
- 迭代最快的Collection
- 大端(Big-Endian)和小端(Little-Endian)
- 索引表简介
- Why the same files are copied to /Approot and /Siteroot in Windows Azure WebRole?
- 观察者模式的使用
- c#基础加强--多态II(接口)
- (优化处理)详细剖析Android Traceview 效率检视工具!分析程序运行速度!并讲解两种创建SDcard方式! .
- showModalDialog参数和使用方法;
- struts2中的request,response,session
- 探讨Oracle数据库的数据导入方法