码迷,mamicode.com
首页 > 其他好文 > 详细

大端模式,小端模式

时间:2020-05-07 00:56:51      阅读:59      评论:0      收藏:0      [点我收藏+]

标签:style   nbsp   小端   习惯   ext   lse   运行   ace   print   

我们看数字的习惯是从左到右,即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 }

 

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

大端模式,小端模式

标签:style   nbsp   小端   习惯   ext   lse   运行   ace   print   

原文地址:https://www.cnblogs.com/xikl/p/12839855.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!