博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于int类型数据在内存中的高低位存储问题
阅读量:4166 次
发布时间:2019-05-26

本文共 601 字,大约阅读时间需要 2 分钟。

最近在给学生讲课的时候,学生问到,对于一个c语言编写的程序,一个int类型的数据,在内存中是如何存储的。

例如:int类型的1在内存中占用4个字节,那这4个字节具体怎么存储呢?

目前市面上大部分书籍说的都是数字的字节表示形式,按照二进制的方式进行存储。学生就理所当然的认为是按照下面方式进行存储的。

第1字节                 第2字节                  第3字节               第4字节

00000000            00000000             00000000           00000001

但是我告诉他们实际上并不是这样存储的,而是低位在前,高位在后的方式存储的,也就是按照下面的方式

第1字节                 第2字节                  第3字节               第4字节

00000001            00000000             00000000           00000000

学生们就觉得有点不太好理解,于是就写了一段小程序来检验一下,看看是否是我说的这种方式进行存储。

[cpp] 
 
  1. #include <stdio.h>  
  2.   
  3.   
  4. int main(){  
  5.     int i = 1;  
  6.     unsigned char * p = (unsigned char *)(&i);  
  7.     printf("第1字节:%d,第2字节:%d,第3字节:%d,第4字节:%d\n",*p,*(p+1),*(p+2),*(p+3));  
  8. }  

于是他们按照我的这个思路,对所有的基本数据类型都做了一个检测,并且对结构体等复杂类型的内存存储方式都做了一个检验,对数据类型在内存中的存储方式的理解又深入了一步。

转载地址:http://jwexi.baihongyu.com/

你可能感兴趣的文章
Mutex, semaphore, spinlock的深度解析
查看>>
pthread线程使用小结
查看>>
A Game of Thrones(59)
查看>>
2018.3.19
查看>>
A Game of Thrones(97)
查看>>
A Game of Thrones(98)
查看>>
2018.3.20
查看>>
2018.3.21
查看>>
2018.3.22
查看>>
2018.3.23
查看>>
A Game of Thrones(102)
查看>>
2018.4.29
查看>>
2018.4.30
查看>>
2018.4.31
查看>>
2018.4.32
查看>>
2018.4.33
查看>>
《python基础教程》答案(第一章)
查看>>
2018.4.34
查看>>
2018.4.35
查看>>
2018.4.36
查看>>