码迷,mamicode.com
首页 > 其他好文 > 详细

内存的大小端模式

时间:2014-05-25 19:44:12      阅读:247      评论:0      收藏:0      [点我收藏+]

标签:style   blog   c   http   a   color   

因为不明白为什么图像的数据会以BGR而不是RGB的方式存放到内存中,扯出了以前在计算机组成原理中学习过的内存大小端模式。记录下来,方便以后再复习。

 

在计算机系统中,内存的管理以字节为单位,1 byte=8 bit,一个字节的内容在内存中的存放顺序是固定的。

在C语言中,很多类型大小超过了1byte,例如int通常是4byte,多个字节的数据在内存中可以用两种方式对齐来排放,这两种方式就是大端模式和小端模式。

如:0x12345678 

其中0x12是高位的数据,0x78是低位数据。

在内存中,可以按照地址的大小分为低地址和高地址

                内存地址           大端模式             小端模式

低地址   |0x00440000|   0x12      0x78

      |0x00440001|   0x34      0x56

      |0x00440002|   0x56      0x34

高地址   |0x00440003|   0x78      0x12

1.小端模式(Little-Endian)就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。(x86采用小端模式  )
2.大端模式(Big-Endian)  就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。(在内存和字符串的排列一致,在内存中排列符合我们的习惯)

各自的优点就是对方的缺点:

小端模式:强制转换数据不需要调整字节内容;

大端模式:符号位的判定固定为第一个字节,容易判断正负。

 

参考博文:http://blog.csdn.net/ce123_zhouwei/article/details/6971544

内存的大小端模式,布布扣,bubuko.com

内存的大小端模式

标签:style   blog   c   http   a   color   

原文地址:http://www.cnblogs.com/wangpei0522/p/3750390.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!