数据存储——(探究内存里的秘密)

news2024/11/19 3:35:39

内存中的数据是代码的基因,相当于人体中的DNA。
你看代码就是看内存,因此了解内存中的数据存储十分有必要。
内容较多,制作不易,多多点赞支持一下,我自己会总结科班和it培训班的精华共享。

下面的图片有代码和解释

内容大致分为int 型存储规则; 浮点型存储的规则及取数据的规则。最后拓展了浮点型单精度双精度的区别,小数转换二进制的方法。

图片可以复制下来,我已经空了很多空白地方,方便大家做自己的注释和总结!!!

这是我的笔记链接(已经开源),大家可以斧正
https://ebgx2518-my.sharepoint.com/personal/a4321_office36-5_nl/_layouts/15/Doc.aspx?sourcedoc={f29af28d-33a1-4667-900c-4f4c408abc0a}&action=edit&wd=target%28%E5%85%B3%E9%94%AE%E5%AD%97.one%7Cee32ba2c-c16a-48b9-8133-a5179e25cab4%2Fconst%7C61e3a7e2-5096-420b-9128-627e2369f8c3%2F%29&wdorigin=NavigationUrl

在这里插入图片描述
总结:int 型 4字节——32比特位(1个字节8个比特位),内存又分大小端存储,看电脑的怎么运行。显示为16进制,内存实际上是二进制。16进制是为了简洁观看。比如int a=10;——0000,0000,0000,0000,0000,0000,0000,1010

float 型 4字节——32比特位(1位存正负,8位存指数,23位),存数据的时候,先把小数化为二进制,二进制写出科学计数法,三大因子——(S,E,M)(正负,指数,有效数字)——正为0,负为1,写第一位,有效数字写最后,后面补0,最后写中间指数+127得到的8位二进制放在中间。

double 型 8字节——64比特(1位存正负,11位存指数,52位)其他和float单精度一样,就最后指数E+1023变成11位二进制有区别

下面拓展单精度双精度区别

1.精度:单精度使用32位(4字节)来存储浮点数,而双精度使用64位(8字节)。因此,双精度具有更高的精度,可以表示更大范围和更精确的数值。单精度通常提供7位有效数字,而双精度提供15-16位有效数字。

2.范围:单精度可以表示的范围约为±3.4 x 10^38,而双精度的范围约为±1.7 x 10^308。因此,双精度可以表示比单精度更大或更小的数值。

3.内存占用:由于双精度存储更多的位数,所以它占用的内存空间也更大。这意味着使用双精度数据类型时,需要更多的存储空间来存储相同数量的数据。

4.运算速度:单精度的运算速度通常会比双精度更快,因为它需要处理的位数较少。对于一些对精度要求不高的应用程序来说,单精度可以提供更高的计算效率。

怕初学者看不懂二进制转化细节
下面拓展小数转化二进制的基础知识?
将浮点数转换为二进制的过程通常涉及到两个主要步骤:将整数部分和小数部分分别转换为二进制,并应用浮点数的规范化表示。

下面是一个简单的示例,将浮点数13.625转换为二进制:

  1. 整数部分转换为二进制:将整数部分13除以2,并记录余数和商。重复这个步骤,直到商为0为止。将所得的余数从底部向上排列,即为整数部分的二进制表示。在这个示例中,13的二进制表示为1101。

  2. 小数部分转换为二进制:将小数部分0.625乘以2,并记录整数部分和小数部分。继续将小数部分乘以2,并重复这个过程,直到小数部分为0或达到所需的精度。将所得的整数部分从左到右排列,即为小数部分的二进制表示。在这个示例中,0.625的二进制表示为0.101。什么意思?0.625x2=1.25. 1.25x2=2.5
    2.5x2=5.0—— 5的二进制101就是你的小数部分的二进制

  3. 结合整数部分和小数部分:将整数部分的二进制和小数部分的二进制组合在一起。在这个示例中,13.625的二进制表示为1101.101。

  4. 规范化表示:将二进制表示规范化,使得只有一个数字位数为1,即小数点的位置。通过将小数点向左或向右移动,调整整数部分和小数部分的位置。在这个示例中,可以将小数点向左移动3位,得到规范化的二进制表示为1.101101 × 2^3。

请注意,这只是一个简单的示例,实际的浮点数转换可能会更复杂,并涉及到更多的规则和约定。具体的浮点数表示也取决于所使用的编程语言和硬件平台。

谢谢你看到这里!制作不易,你的支持就是我更新的最大动力!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1046776.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

钡铼BL302与PLC:提升酿酒业效率与品质的利器

啤酒是人类非常古老的酒精饮料,是水和茶之后世界上消耗量排名第三的饮料。 啤酒在生产过程中主要有制造麦芽、粉碎原料、糖化、发酵、贮酒後熟、过滤、灌装包装等工序流程。需要用到风选机、筛分机、糖化锅、发酵设备、过滤机、灌装机、包装机等食品机械设备。这些食…

西门子S7协议及报文格式详解

一、简介 S7Comm(S7 Communication)是西门子专有的协议,是西门子S7通讯协议簇里的一种。 S7通信协议是西门子S7系列PLC内部集成的一种通信协议,是S7系列PLC的精髓所在。 它是一种运行在传输层之上的(会话层/表示层/应…

广州华锐互动:VR结绳逃生训练模拟真实火灾场景,增强训练沉浸感

随着科技的发展,虚拟现实(VR)技术已被广泛应用到各个领域,其中包括消防训练。VR消防结绳训练是一种创新的消防训练方式,它通过虚拟现实技术模拟真实的灭火场景,使消防人员能够在无风险的环境中进行高强度的…

stable diffusion和gpt4-free快速运行

这是一个快速搭建环境并运行的教程 stable diffusion快速运行gpt快速运行 包含已经搭建好的环境和指令,代码等运行所需。安装好系统必备anaconda、conda即可运行。 stable diffusion快速运行 github: AUTOMATIC1111/稳定扩散网络UI:稳定扩散网页用户界…

2024新款进销存系统erp管理系统

环境要求 服务器系统 Linux、Unix、Mac、Windows web服务器 Apache、Nginx、IIS、其他 MySQL版本 5.7 PHP版本 8.0 采购价格 当前商品如进行过采购,则采购价格列内会出现价格信息,及采购的历史价格,点击后面的图标进入历史信息页面。 库存…

OJ练习第182题——字典树(前缀树)

字典树(前缀树) 208. 实现 Trie (前缀树)题目描述示例知识补充官解代码 211. 添加与搜索单词 - 数据结构设计题目描述示例思路Java代码 208. 实现 Trie (前缀树) 力扣链接:208. 实现 Trie (前缀树) 题目描述 示例 知识补充 插入字符串 我…

SPI—读写串行FLASH

一、SPI协议简介 SPI协议是由摩托罗拉公司提出的通讯协议(Serial Peripheral Interface),即串行外围设备接口,是一种高速全双工的通信总线。它被广泛的使用在ADC、LCD等设备与MCU之间,要求通讯速率比较高的场合。 SP…

实验室信息管理系统(LIMS)全套源码,ASP.NET Dotnet 3.5 +EXT.NET+MSSQL 2018

实验室信息管理系统(LIMS)源码 检测实验室LIMS系统全套源码 技术架构:ASP.NET Dotnet 3.5 EXT.NETMSSQL 2018 实验室信息管理系统(LIMS)能够完成实验室数据和信息的收集、分析、报告和管理的系统。它是现代实验室综合管理的一种理念、技术、方…

【Nuxt】01 什么是SSR 服务端渲染

前言 在当前的前端开发工作中,我们见到最多的三种渲染方式,如下: CSR:Client Side Rendering,客户端(通常是浏览器)渲染;SSR:Server Side Rendering,服务端…

如何一键提取微信背景图?

微信图文中的背景图,就像室内装修中的墙纸。使用不同颜色、图案的背景图能让文章更有质感,更立体,能给读者带来不一样的视觉体验。那看到其他公众号用的背景图很好看,自己也想用,怎么办?(以速排…

国货疯抢流量,B站接连爆发800万播放实现破圈

近日,“79元商战”的消息洗刷全平台,众多国货品牌的“不容易”开始被越来越多的消费者注意到,消费者们自发性地开始重新审视真正做产品的国货品牌们,并为之全力支持。有网友笑称:这“泼天的富贵”终于落到了国货品牌的…

软信天成:元数据的干货分享!建议点赞收藏

元数据(Metadata)为描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。简单来讲,元数…

golang工程——grpc一元请求与流请求

唉,难顶,像块砖一样到处搬。又跑去golang技术栈的项目俩月 本篇博客多有参考,记录一下近期学习 rpc、grpc原理 grpc 是一项进程间通信技术,可以用来连接、调用、操作和调试构建分布式程序,调用过程如同调用函数一样&…

【剑指Offer】77.按之字形顺序打印二叉树

题目 给定一个二叉树&#xff0c;返回该二叉树的之字形层序遍历&#xff0c;&#xff08;第一层从左向右&#xff0c;下一层从右向左&#xff0c;一直这样交替&#xff09; 数据范围&#xff1a;0≤n≤1500,树上每个节点的val满足 ∣val∣<1500 要求&#xff1a;空间复杂度…

深入浅出DAX:SELECTEDVALUE()

深入浅出DAX&#xff1a;SELECTEDVALUE() SELECTEDVALUE()&#xff0c;如果筛选 columnName 的上下文后仅剩下一个非重复值&#xff0c;则返回该值。否则返回alternateResult&#xff0c;语法如下&#xff1a; SELECTEDVALUE(<columnName>[, <alternateResult>] …

CorelDRAW Graphics Suite2023绿色中文版本下载教程

CorelDRAW Graphics Suite2023版是领先的一体化软件包&#xff0c;它包括多个程序&#xff0c;如CorelDRAW、Corel PHOTO-PAINT、Corel CAPTURE、Corel Font Manager、Duplexing Wizard等&#xff0c;可全部安装&#xff0c;也可根据实际需要选择进行安装&#xff0c;都是最新版…

敏捷发布列车初探2 ---- Agile Release Train

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 敏捷发布列车二、ART的特性2.敏捷团队为列车提供动力3.与共同节奏保持一致4.关键角色启用 三、ART的责任总结 敏捷发布列车 敏捷发布列车&#xff08;ART&#xff…

PHP生成二维码带图标代码实例

PHP生成二维码带图标代码实例&#xff08;PHP QR Code二维码生成类库&#xff09; public static function png($text, $outfilefalse, $levelQR_ECLEVEL_L, $size3, $margin4, $saveandprintfalse) { $enc QRencode::factory($level, $size, $margin); return $enc->…

IP地址证书:保护网站安全的重要措施

首先&#xff0c;我们需要了解什么是IP地址证书。IP地址证书是一种专门用于公网IP地址验证的数字证书&#xff0c;它主要用于解决IP地址明文传输的安全隐患和加密传输的问题。那么IP地址证书是如何保护网站的&#xff1f; 1&#xff0c;身份验证 IP地址证书用于对网站进行身份…

mysql workbench常用操作

1、No database selected Select the default DB to be used by double-clicking its name in the SCHEMAS list in the sidebar 方法一&#xff1a;双击你要使用的库 方法二&#xff1a;USE 数据库名 2、复制表名&#xff0c;字段名 3、保存链接