字节序与栈

来源:互联网 发布:双色球大赢家软件3.16 编辑:程序博客网 时间:2024/06/05 22:45

这个问题是在处理一个字节序问题时发现的,然后查找梳理了一下相关知识点,在这里总结一下。

字节序,顾名思义字节的顺序,再多说两句就是大于一个字节类型的数据在内存中的存放顺序(一个字节的数据当然就无需谈顺序的问题了)。


在所有的介绍字节序的文章中都会提到字 节序分为两类:Big-Endian和Little-Endian,引用标准的Big-Endian和Little-Endian的定义如下:

a) Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。
b) Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。
c) 网络字节序:TCP/IP各层协议将字节序定义为Big-Endian,因此TCP/IP协议中使用的字节序通常称之为网络字节序。
d)目前大多数电脑都是使用的x86处理器,存储方式为小端字节序。


c程序映像在内存中的空间布局情况:


小端字节序是高地址在栈底,低地址在栈顶(大端字节序则相反)


注意:对于变量地址的加减操作,等于对于指向内存地址的加减操作,而内存地址永远是由栈底向栈顶递减的。


原创粉丝点击