C程序开发中,有时候会涉及到大端和小端的概念。
先来看看小端的概念。例如内存中有一段连续的内存区域,地址从0x0到0x3;现在有一个整数,用16进制表示是0x12345678,每两个数字是一个字节(16进制概念大家可以百度下),0x12是最高字节,0x78是最低字节。现在将这个整数保存在内存中,如下图所示:
先来看看小端的概念。例如内存中有一段连续的内存区域,地址从0x0到0x3;现在有一个整数,用16进制表示是0x12345678,每两个数字是一个字节(16进制概念大家可以百度下),0x12是最高字节,0x78是最低字节。现在将这个整数保存在内存中,如下图所示:
内存地址
|
0x0
|
0x1
|
0x2
|
0x3
|
存放内容
|
0x12
|
0x34
|
0x56
|
0x78
|
整数的最高字节0x12存放在内存的最低地址0x0,整数的最低字节0x78存放在内存的最高地址0x3,这种存放方式即为大端。
如果按照如下形式存储:
内存地址
|
0x0
|
0x1
|
0x2
|
0x3
|
存放内容
|
0x78
|
0x56
|
0x34
|
0x12
|
也可以用C程序来判断当前系统是大端还是小端,具体的C程序请见下一篇文章!