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

大端模式与小端模式

时间:2016-05-11 18:11:37      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:

什么是大端和小端

Big-Endian和Little-Endian的定义如下:
1) Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。
2) Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端

举一个例子,比如数字0x12 34 56 78在内存中的表示形式为:

1)大端模式:

低地址 -----------------> 高地址
0x12  |  0x34  |  0x56  |  0x78

2)小端模式:

低地址 ------------------> 高地址
0x78  |  0x56  |  0x34  |  0x12

大端转小端16位

  1. #define BigtoLittle16(A)   (( ((uint16)(A) & 0xff00) >> 8)    | \  
  2.                                        (( (uint16)(A) & 0x00ff) << 8))  

大端转小端32位

  1. #define BigtoLittle32(A)   ((( (uint32)(A) & 0xff000000) >> 24) | \  
  2.                                        (( (uint32)(A) & 0x00ff0000) >> 8)   | \  
  3.                                        (( (uint32)(A) & 0x0000ff00) << 8)   | \  
  4.                                        (( (uint32)(A) & 0x000000ff) << 24))  

 

小端转大端 16位

// 16位 将2个字节,转换成大端
static short Little2Big(byte A, byte B) {
return (short) (((short) (B) & 0x00ff) << 8 | ((short) (A) & 0x00ff));
}

 

大端模式与小端模式

标签:

原文地址:http://www.cnblogs.com/zhaoleigege/p/5482695.html

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