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

大端模式和小端模式

时间:2018-04-12 15:32:25      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:bin   big   name   计算机系统   阅读   powerpc   类型   获得   bsp   

1.为什么存在大小端模式

计算机系统中,每个地址单元对应一个字节(8bit),一种数据类型的数据可能占用若干字节。如何安排这种数据类型中的各个字节,哪个字节在低地址哪个在高地址,以及一个字节中的各个比特的排列,这就牵涉到大小端模式。也就是大家常说的字节序和比特序问题。字节序和比特序一般是一致的,要么都是大端,要么都是小端。

2.什么是大端和小端

大端模式:低位(字节/比特)放在高地址中,高位(字节/比特)放在低地址中。
小端模式:低位(字节/比特)放在低地址中,高位(字节/比特)放在高地址中。
高位和地位是对于我们正常阅读和书写来说,最开始是高位,例如int型数0x1234,0x12是字节的高位,0x34是字节的低位。
根据以上规则,我们给出在大、小端序系统中整数0x0a0b0c0d的表示方式。
对于大端系统:
byte addr        0                     1                 2                3
bit offset  01234567 01234567 01234567 01234567
    binary  00001010 00001011 00001100 00001101
        hex          0a                   0b              0c              0d
对于小端系统:
byte addr          3                  2                1                 0
bit offset  76543210 76543210 76543210 76543210
    binary  00001010 00001011 00001100 00001101
        hex            0a               0b              0c             0d

3. 检测大小端

联合体的存放顺序是所有成员都从低地址开始存放,利用该特性可以轻松获得当前系统采用大端还是小端模式

BOOL IsBigEndian()    
{    
    union NUM    
    {    
        int a;    
        char b;    
    }num;    
    num.a = 0x1234;    
    if( num.b == 0x12 )    
    {    
        return TRUE;    
    }    
    return FALSE;    
}  

4.常见的大小端

一般操作系统都是小端模式;而通讯协议是大端模式;java和平台无关,默认是大端模式
常见的cpu的大小端:
大端:PowerPC、IBM、Sun
小端:x86
ARM既可以工作在大端模式,也可以工作在小端模式

大端模式和小端模式

标签:bin   big   name   计算机系统   阅读   powerpc   类型   获得   bsp   

原文地址:https://www.cnblogs.com/justkong/p/8807534.html

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