大端模式,小端模式

Posted xikl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大端模式,小端模式相关的知识,希望对你有一定的参考价值。

我们看数字的习惯是从左到右,即123读为一百二十三
 
以下例子使用十六进制0x0102说明
比如用01代表内存中01的二进制写法
 
大端模式下:
低地址->高地址
---------------
| 01 | 02 |
---------------
数据存放由 高字节 到 低字节
即低地址存放高字节,高地址存放低字节
也就是我们习惯的看法
在内存中显示
00000001 00000010
用列的方式会更好看些:
00000001 低
00000010 高
 
小端模式下:
低地址->高地址
---------------
| 02 | 01 |
---------------
数据存放由 低字节 到 高字节
从逻辑上讲低字节放低地址,高字节放高地址
在内存中显示
00000010 00000001
用列的方式:
00000010 低
00000001 高
 
 
如何判断自己是小端模式还是大端模式?
 
由上面内容可知0x0102在内存中
要么为00000001 00000010
要么为00000010 00000001
 
我们定义一个char类型指针变量p,刚好是short型变量m字节的一半
 
用p得到m的首地址,即*p得到的值(注:指针得到的地址为低地址)
要么得到00000001
要么得到00000010
 
 1 #include<stdio.h>
 2 
 3 int main(void) {
 4     short m = 0x0102;
 5     char* p = &m;
 6     if (*p == 0x01) {
 7         printf("大端模式");
 8     }
 9     else if (*p == 0x02) {
10         printf("小端模式");
11     }
12 }

 

运行以上程序即可得到结果。
(注:家用型电脑一般是小端模式)

以上是关于大端模式,小端模式的主要内容,如果未能解决你的问题,请参考以下文章

大端模式和小端模式

详解大端模式和小端模式

大端模式 小端模式

大端模式和小端模式

大端模式和小端模式

大端模式和小端模式