0%

大端模式和小端模式的差异和优缺点

大端和小端的差异和优缺点

大端模式和小端模式的差异

这个很好理解,大端就是最低有效位位于低地址处;小端就是最低有效位位于高地址处。就不仔细解释了。

两者的优缺点

操作系统最后一节课,老师讲了讲linux内核中的网络部分。他提了一嘴大端和小端各自的优势,之前还从未思考过。老师说:“小端方便强制类型转换,大端方便判断正负”。想想还挺有道理。

以存储一个有符号整数为例,对于大端模式来说,我们只需要访问变量地址的第一个字节便可以根据符号位来得到变量的正负;而对于小端模式来说,我们必须知道变量的具体长度,将变量的地址加上它的长度减一所得到的地址处的字节取出,才能得到变量的正负。

强制类型转换方面,以c++从int强制类型转换为short为例,对于小端模式来说,我们只需要从变量地址开始取出sizeof(short)个字节便可以完成强制类型转换;而对于大端模式来说,我们还需要知道强制类型转换前变量的类型及int类型,从变量地址加sizeof(int)-sizeof(short)处开始,取sizeof(short)个字节才可以完成强制类型转换。