18.(C进阶)数据在内存中的存储

简介: 18.(C进阶)数据在内存中的存储

整数在内存中的存储

整数二进制的表示方式有三种:原码 反码 补码

三种表示方式均有符号位和数值位两部分,符号位0为正

要区分正数和负数

正整数的原 反 补码都相同

负整数的三种表示方法各不相同

对于整型来说:数据存放内存中其实存放的是补码

原因:1.可以将符号位和数值域统一处理

           2.补码和原码可统一处理,互相转换,运算过程是相同的,不需要额外硬件电路

大小端字节序和字节序判断

可以发现:

1.  为了方便,显示的是16进制

2.倒着存的,为小端存储

大小端

字节在内存中存储时存在着存储顺序的问题,分为大端和小端存储模式

大端:低字节保存在高地址位置

小端:低字节保存在低地址位置

为什么有大小端之分呢?

原因:计算机系统以字节为单位,每个地址单元都对应一个字节,由于寄存器宽度大于一个字节,

          存在将多个字节安排的问题,我们常用的x86结构是小端模式,而KEIL C51为大端模式,

          有些ARM处理器还可以由硬件来选择是大端模式还是小端模式。

练习

//做题ing,会在周四之前,整理出一些好题补充~

浮点数在内存中的存储

说明了整数和浮点数在内存中的存储不一样

浮点数的存储

举例来说:

十进制的5.0,写成二进制是101.0,相当于1.01*2^2

S=0,M=1.01,E=2

0.1表示2^(-1)==0.5

关于M:

1<=M<2,也就是说M可以写成1.XXXXXX的形式,因为默认第一位总是1,因此可以被舍去,比如保存1.01时,只保存01,等到读取的时候,再把第一位的1加上去,这样就可以多保留1位有效数字了

关于E:

E是一个无符号整数

浮点数的取出

E的计算值-127/1023得到真实值,再将有效数字M前加上第一位的1

特殊情况

E全为0,+127还这么小,说明是一个接近于0的很小的数字

E全为1,+127,八位全为1,能表示的最大值为255,说明E为128,一个超级大的数

回到一开始,来思考一下这串代码的输出值

按照int整型储存

按照S E M 来判断浮点数,E为全0,说明是一个趋近于0的极小的数,所以输出0.000000

按照浮点数储存

(E要加上127的

正整型的补码就是原码,转化成十进制为1091567616

因为浮点数的储存是S E M型,不同的存储方式导致了读取时的不同

//都看到这里啦,留下一个赞再走叭


相关文章
|
5天前
|
编译器 C++
virtual类的使用方法问题之C++类中的非静态数据成员是进行内存对齐的如何解决
virtual类的使用方法问题之C++类中的非静态数据成员是进行内存对齐的如何解决
|
12天前
|
存储 算法 大数据
小米教你:2GB内存搞定20亿数据的高效算法
你好,我是小米。本文介绍如何在2GB内存中找出20亿个整数里出现次数最多的数。通过将数据用哈希函数分至16个小文件,每份独立计数后选出频次最高的数,最终比对得出结果。这种方法有效解决大数据下的内存限制问题,并可应用于更广泛的场景。欢迎关注我的公众号“软件求生”,获取更多技术分享!
80 12
|
15天前
内存的数据
va的ava的va的ava的内存需要划分成为5个部分: 1.栈(Stack)存放的都是方法中的局部变量。方法的运行一定要在栈当中运行。 2.堆(Heap)凡是new出来的东西,都是在堆当中 堆内存的东西都有一个地址值:16进制 堆内存的数据,都有默认值。规则: 整数 默认是0 浮点 默认0.0 字符 默认'\u0000'
23 3
|
1天前
|
存储 编译器 C语言
【C语言篇】数据在内存中的存储(超详细)
浮点数就采⽤下⾯的规则表⽰,即指数E的真实值加上127(或1023),再将有效数字M去掉整数部分的1。
|
7天前
|
C++ 容器
curl使用小记(三)——获取远端数据到内存缓冲区
curl使用小记(三)——获取远端数据到内存缓冲区
19 0
|
7天前
|
存储 编译器 C语言
数据在内存中的存储
数据在内存中的存储
|
1月前
|
存储 分布式计算 Hadoop
HadoopCPU、内存、存储限制
【7月更文挑战第13天】
107 14
|
20天前
|
存储 固态存储 芯片
计算机中内存与存储
【7月更文挑战第28天】
26 1
|
25天前
|
存储 弹性计算 程序员
新手程序员如何阿里云服务器配置?新人开发者CPU内存带宽存储怎么选?
对于新手开发者、个人或学生选择阿里云服务器,推荐ECS经济型e实例(ecs.e-c1m1.large),适用于小型网站或轻量应用。配置2核2G内存、3M固定带宽、40G ESSD系统盘,仅99元/年且续费同价。
|
1月前
|
运维 DataWorks 安全
DataWorks产品使用合集之如何查看空间资源、CPU、内存和存储空间容量
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。