今天在写逆向题目时遇到的一个知识点。
字节顺序(维基百科)
字节顺序,又称端序或尾序(英语:Endianness),在计算机科学领域中,指电脑内存中或在数字通信链路中,组成多字节的字的字节的排列顺序。
在几乎所有的机器上,多字节对象都被存储为连续的字节序列。例如在C语言中,一个类型为int的变量x地址为0x100,那么其对应地址表达式&x的值为0x100。且x的四个字节将被存储在电脑内存的0x100, 0x101, 0x102, 0x103位置。
字节的排列方式有两个通用规则。例如,将一个多位数的低位放在较小的地址处,高位放在较大的地址处,则称小端序;反之则称大端序。在网络应用中,字节序是一个必须被考虑的因素,因为不同机器类型可能采用不同标准的字节序,所以均按照网络标准转化。
下面以十六进制0x01234567为例其中 0x01 是最高位有效字节,0x67 是最低位有效字节。
小端序
指机器选择在内存中按照从 最低 有效字节到 最高 有效字节的顺序存储对象。
… | 0x100 | 0x101 | 0x102 | 0x103 | … |
---|
… | 67 | 45 | 23 | 01 | |
大端序
指机器选择在内存中按照从 最高 有效字节到 最低 有效字节的顺序存储对象。
… | 0x100 | 0x101 | 0x102 | 0x103 | … |
---|
… | 01 | 23 | 45 | 67 | |
参考https://oi-wiki.org/misc/endianness/ | | | | | |
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)