我不是每天都处理大端和小端问题,因此我很难记住哪个是什么。
最近,我接受了采访,询问两者之间的区别。因为我不记得我决定“猜测”(毕竟有50%的机会),但我失败了。
那么,有没有广为人知的实用技巧可以记住大字节序和小字节序之间的区别?
我不是每天都处理大端和小端问题,因此我很难记住哪个是什么。
最近,我接受了采访,询问两者之间的区别。因为我不记得我决定“猜测”(毕竟有50%的机会),但我失败了。
那么,有没有广为人知的实用技巧可以记住大字节序和小字节序之间的区别?
Answers:
我一直认为它定义了错误的方式,这也是记住它的提示。作为非英语母语者,我认为“结束”与“开始”相反(尽管显然“结束”可以表示结束-结束或结束)。无论如何,我只记得“定义错误的方式” :)
或者,指位字节序:
即使单词endianness的通常用法是指单词中字节的排序方式,但其通用含义是指较大数据项表示形式中可单独寻址的子组件的顺序(如Wikipedia中所述)。
我自己的提示:
记住这一点的最好方法是,文明的人民寻找多样性,因此吃鸡蛋的方式与订购数字的方式不同。我们先从大数字(大尾数)开始写十进制数字,而从小尾数(小尾数)开始吃水煮蛋。
大端数字从“大端”开始。小端数字从“小端”开始。
根据《格列佛游记》,这两者都暗示着从哪里开始吃鸡蛋的问题。
在这种情况下,“结束”不是开始的对立面,它只是指(绳)的任何极值,因此它们不被称为“大结束语”或“小结束语”(肯定是与“开始”相反)。
我最容易记住的方法是将单词“ endian”更改为“ startian”。大的startian整数从大端开始(例如,最高有效字节在前),而小的startian整数从小末端开始(例如,最低有效字节在前)。
我永远不记得哪个是“大端”和哪个“小端”,但是知道PowerPC和Intel x86处理器的字节顺序。Little与Intel的大部分字母相同,因此Intel x86是little-endian。
当然,仅当您知道PPC和x86的字节顺序时,这才有用。另一方面,您现在应该记住Intel x86 = little-endian。请记住,即使使用完全不同的指令集,x86和ARM也非常兼容。
我这样说:大就是美丽!
大==美丽==对。
正确的字节序是您可以在十六进制转储中读取的字节序,就像任何理智的人一样,它会将最高有效字节放在首位。
小==丑==错误。
这种顽固性产生的六进制转储是非常明显的错误,以至于您大喊“脑筋急转弯!”。也许这是外星人的可憎之举,我们只能推测这种暴行的起源。尽管如此,它仍然存在,并且我们一直坚持下去。
皮蒂(Pitty),并非总是能成为比赛的最佳变种...
Little == ugly == wrong
... “即使是最小的人也可以改变未来的发展方向”-加拉德尔,LOTR
大端顺序:(升序)
从低到高
0 | 1 | 2 | 3 ^ ^开始结束
在little-Endian中:(降序)
高到低
即
3 | 2 | 1 | 0 ^ ^开始结束