尾端

王朝百科·作者佚名  2010-06-26  
宽屏版  字体: |||超大  

定义:计算机中数据存储的一种模式。首先由Danny Cohen(1980)引入计算机科学界。

分类:计算机界存在着大尾端与小尾端两在阵营,两者存在着极深的鸿沟。

大尾端与小尾端区别1.定义大尾端:高位在低地址。

小尾端:尾位在低地址。2.字节层次。如整数0x12345678在内存中应该如下存放:

地低: base | base+1 | base+2 | base+3 |

------------------------------------------------ |

大端 | 12 | 34 | 56 | 78 |

----------------------------------------------- |

小端 | 78 | 56 | 34 | 12 |

程序验证:

int _tmain(int argc, _TCHAR* argv[])

{

union UData {

unsigned long integer;

unsigned char array[4];

} Data;

Data.integer=0x12345678;

printf("%x%x%x%x

",Data.array[0],Data.array[1], Data.array[2], Data.array[3]);

return 0;

}

ps:一般PC是小端存储的。3.字节内位序 。在字节内依然是:

大端:高位放在低地址。

小端:低位放在低地址。

即大端与小端位序完全是镜像的。下面的程序可证明。

int _tmain(int argc, _TCHAR* argv[])

{

struct BitData {

unsigned Bit0_3:4;

unsigned Bit4_7:4;

unsigned Bit8_11:4;

unsigned Bit12_15:4;

};

union SData {

unsigned short Data;

struct BitData BData;

} ssData;

ssData.Data=0x1234;//此时BData与Data完全共享同一空间。

printf("%x%x%x%x

",ssData.BData.Bit0_3,ssData.BData.Bit4_7,ssData.BData.Bit8_11,ssData.BData.Bit12_15);

return 0;

}

在运行程序前请先推理一下会输出什么,然后运行一下看看结果。

上述程序在普通PC上(小尾端)结果应该是:

4 3 2 1

[1]

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有