以下内容参考了:
https://www.zhihu.com/question/22749952
https://www.cnblogs.com/gremount/p/8830707.html
标准文档上要求的是:四个幻数在内存地址上从低到高为:
A: 01 23 45 67
B: 89 ab cd ef
C: fe dc ba 98
D: 76 54 32 10
每一个值都是作为一个整数来读写,所以必须要考虑大端小端。如果是小端的话,就要写成:
A = 0x67452301UL
B = 0xEFCDAB89UL
C = 0x98BADCFEUL
D = 0x10325476UL
计算机硬件有两种储存数据的方式:大端字节序(big endian)和小端字节序(little endian)。
举例来说,数值0x2211
使用两个字节储存:高位字节是0x22
,低位字节是0x11
。
- 大端字节序:高位字节在前,低位字节在后,这是人类读写数值的方法。
- 小端字节序:低位字节在前,高位字节在后,即以
0x1122
形式储存。