小字节序和大字节序
小字節序:(比如x86體系) 數據的低字節放在低地址處,比如一個整型數0x12345678,在內存中的
????????? 分布為:
?????????????????? -----------
?????????????????? |??? 78?? | xxxx_0000
?????????????????? -----------
?????????????????? |??? 56?? | xxxx_0001
?????????????????? -----------
?????????????????? |??? 34?? | xxxx_0002
?????????????????? -----------
?????????????????? |??? 12?? | xxxx_0003
?????????????????? -----------
????????????????
?????????????????? Little Endian
大字節序:(比如PowerPC體系) 數據的低字節放在高地址處,比如一個整型數0x12345678,在內存中的
????????? 分布為:
?????????????????? -----------
?????????????????? |??? 12?? | xxxx_0000
?????????????????? -----------
?????????????????? |??? 34?? | xxxx_0001
?????????????????? -----------
?????????????????? |??? 56?? | xxxx_0002
?????????????????? -----------
?????????????????? |??? 78?? | xxxx_0003
?????????????????? -----------
????????????????
?????????????????? Big Endian
比如有如下結構體定義:
typedef struct
{
??? unsigned short Rsvd??????????? : 4; /* rsvd0. */
??? unsigned short Tgid??????????? : 6; /* this is the group number. */
??? unsigned short Index?????? : 6; /* this is index for this com use. */
}My_Struct;
u16 value = 0x1234;
My_Struct *p;
p = (My_Struct *)&value;
(1)在小字節序的系統上,它的分布如下:
????????
???????? 15?????? 10|9??????? 4|3??? 0
???????? ---------------------------------
???????? | Index?? |?? Tgid?? | Rsvd |
???????? ---------------------------------
value的值為0x1234,則:
??????? 0001 0010 0011 0100
???????? Rsvd : 0x04
???????? Tgid : 0x23
???????? Index : 0x04
(2)在大字節序的系統上,它的分布如下:
????????
???????? 15?? 12|11?????? 6|5?????? 0
???????? --------------------------------
???????? | Rsvd |?? Tgid?? | Index |
???????? --------------------------------
value的值為0x1234,則:
??????? 0001 0010 0011 0100
???????? Rsvd : 0x01
???????? Tgid : 0x08
???????? Index : 0x34
總結
- 上一篇: 深证综指和深证成指的区别,表现在这几个地
- 下一篇: 网申信用卡被拒 看看是你的原因吗?