数据在内存中的存储方式

前言:

期末临近,继续复习!

今天要复习的内容是数据在内存中的存储,主要是整型与浮点两种,还有大小端的介绍。

提出问题

数据在内存中的存储方式_第1张图片

打印结果是255            -1

为什么?

首先我们要知道数据都是以二进制的形式存储于计算机中的,而不同的类型在不同平台下占用的空间大小也不一样,具体可看下图

数据在内存中的存储方式_第2张图片

数据来源http://t.csdnimg.cn/2gnJv

在此基础上我们还要知道整数默认是4个字节,小数是8个字节

整数在内存中以补码形式存在

-1:11111111 11111111 11111111 11111111

把-1赋值给char类型的a,会发生截断,之后后八位被存进去了

a:11111111

同理,b:11111111

在打印的时候是以%d打印的,因此a,b要发生整形提升,a作为无符号数提升后为00000000 00000000 00000000 11111111

b作为有符号数变为11111111 11111111 11111111 11111111

这些都是补码,被读取后一个数255,一个是-1

在此基础上我们对char进一步分析,他可以存的数有以下这些

数据在内存中的存储方式_第3张图片

 

对于有符号char来说他的范围是-128到127

对于无符号char来说它的范围是0到255,都是存了256个不同的数,而且当你存的数字超过他的范围时,就会开始循环了如下图所示

数据在内存中的存储方式_第4张图片

 举个例子,对于无符号数255,他的补码是11111111

那么你存一个无符号256此时存进去的就是00000000,每次循环就是256个数,具体顺序就是上图。

 

 

 

 

 

 

你可能感兴趣的:(c语言,数据结构)