把玩数据在内存中的存储

news2024/11/15 15:26:13

前言:时光如梭💦,今天到了C语言进阶啦😎,基础知识我们已经有了初步认识, 是时候该拔高拔高自己了😼。
目标:掌握浮点数在内存的存储,整形在内存的存储。
鸡汤:时光易过,岁月蹉跎。☺️

深度剖析数据在内存中的存储

1️⃣数据类型的介绍

在这里插入图片描述
前面已经讲解过了,可以再看一遍,熟悉熟悉,这里有些没有见过,没关系,后面会详细介绍。

🚩1.类型的基本归类

在这里插入图片描述
当然,这里有些没有学过,没得关系,咱们一步一步来,不要一口吃成一个胖子。

2️⃣整形在内存的存储

其实我们知道,整形在内存为4个字节,32个比特位,以二进制的形式存储,让我们再看看二进制等其它进制

😸二进制:以0和1的形式来表示一个数据
😸八进制:以0开头如:0 123456
😸十进制:十进制就是生活中的进制 如:10
😸十六进制:以0x开头如:0x443322211

🚩1.原码,反码,补码

在前面我们已经知道,这里就巩固巩固🤓🤓

🫤原码:以二进制的形式存储
🫤反码:原码中符号位不变,其它位按位取反
🫤补码:在反码的基础上,加一

♾️正数的原码,反码,补码相同
♾️在数据存储中,以补码的形式存储

🚩2大小端介绍

在这里插入图片描述

♾️如果最高位的字节数据存在最低地址上,而次高位的字节数据按次序排列在次低的地址上,那么这种存储方式就叫大端存储
♾️如果最低位的字节数据存在最低地址上,而次低位的字节数据按次序排列在次低的地址上,那么这种存储方式就叫小端存储

🚩3练习

有符号和无符号的区别
❕unsigned char:无符号(把最高的符号位当做数值)
❕signed char:有符号(正常计算)
❗技巧:无符号直接用补码,有符号找原码
⭕1000 0000最小值 -128(无法计算,这里说的是有符号数)
⭕1111 1111 255(这里是无符号的数值)
有了上面的认识,下面的练习会简单不少😳😳😳

🏴第一题
#include<stdio.h>
//输出结果
int main()
{
	char a = -1;
	signed char b = -1;
	unsigned char c = -1;
	printf("a=%d,b=%d,c=%d\n", a, b, c);
	// -1 -1 255
	return 0;
}

在这里插入图片描述

🏴第二题
#include<stdio.h>
//输出结果
int main()
{
	char a = -128;
	//%u是无符号数
	printf("%u\n", a);
	return 0;
}
//4294967168

在这里插入图片描述

🏴第三题
#include<stdio.h>
//输出结果
int main()
{
	char a = 128;
	//%u是无符号数
	printf("%u\n", a);
	return 0;
}
//4294967168

在这里插入图片描述

3️⃣浮点数在内存的存储

🚩1一个例子让你看清浮点数的存储

#include<stdio.h>

int main()
{
	int n = 9;
	float* pfloat = (float*)&n;
	printf("n的值为:%d\n", n);
	printf("*pflaot的值为:%f\n", *pfloat);

	*pfloat = 9.0;
	printf("n的值为:%d\n", n);
	printf("*pflaot的值为:%f\n", *pfloat);
	return 0;
}

在这里插入图片描述
很多小伙伴有问号😭😭😭,先抛出问题,咱们后面一一讲解。

🚩2浮点数存储的规则

在这里插入图片描述
💦公式:浮点数 =(-1)^s × M × 2 ^ E

💫s:只能是 0 或 1,代表数字的正负
💫M: 是二进制的科学计数法
💫E: 为次幂 + 127
以-5.0为例:
二进制为:-101.0
二进制的科学计数法为:-1.01×2^2
所以:s = 1, M = 10 ,E = 2 + 127。
那我们再返回看看前面的例子,是不是瞬间就懂了呢?这里博主就讲解了,师傅领进们,修行靠个人。
在这里插入图片描述

4️⃣结尾

今天内容就到这里,时间过得很快,大家沉下心来好好学习,会有一定的收获的,大家多多坚持,嘻嘻,成功路上注定孤独,因为坚持的人不多。那请大家举起自己的小说给博主一键三连,有你们的支持是我最大的动力💞💞💞,回见。

在这里插入图片描述

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

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

相关文章

arcgis for javascript api4.26 本地tomcat部署,以及解决跨域访问问题

一、配置java_jdk以及tomcat arcgis for javascript api 部署到本地服务器&#xff0c;可以是iis&#xff0c;也可以是tomcat,我这里是部署到tomcat,所以就介绍一下tomcat上部署的步骤。 如果电脑上有本地服务器的&#xff0c;可以跳过这一章&#xff0c;直接从第二章开始看 下…

1绪论_1.1数据结构的基本概念+1.2算法和算法评价

1.1.1基本概念和术语 数据 数据是信息的载体&#xff0c;是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据是计算机程序加工的原料。 数据元素 数据元素是数据的基本单位&#xff0c;通常作为一个整体进行考虑和处理。一个数…

探索iOS自定义ijkplayer画中画播放

iOS提供AVPictureInPictureController用于画中画播放控制&#xff0c;但是只能绑定AVPlayer使用&#xff0c;对于开发者来说挺头痛的。在iOS 15.0后呼之欲出&#xff0c;支持SampleBufferDisplayLayer自定义数据源显示图层&#xff0c;意味着我们可以自定义第三方播放器实现画中…

内网安全:代理技术详解

目录 代理技术实验所用网络拓扑图及说明 代理技术 SOCK协议 使用代理技术的原因 正向代理与反向代理 实战一&#xff1a;MSF代理通讯 实验原理说明 一. Meterpreter建立路由 二. MSF建立节点 三. 建立代理到MSF上 实战二&#xff1a;CS代理通讯 实验原理说明 一. …

OpenGl之摄像机

文章目录 摄像机/观察空间摄像机位置摄像机方向右轴上轴 Look At自由移动移动速度鼠标输入缩放摄像机源码 OpenGL本身没有摄像机(Camera)的概念&#xff0c;但我们可以通过把场景中的所有物体往相反方向移动的方式来模拟出摄像机&#xff0c;产生一种我们在移动的感觉&#xff…

并发专栏-队列同步器 AQS 以及 Reentrantlock 应用

队列同步器 AQS 以及 Reentrantlock 应用 Java 中的大部分同步类都是基于AbstractQueuedSynchronizer&#xff08;简称为AQS&#xff09;实现的。 ReentrantLock、ReentrantReadWriteLock、Semaphore(信号量)、CountDownLatch、公平锁、非公平锁、 ThreadPoolExecutor 都和 AQS…

《C和指针》读书笔记(第九章 字符串、字符和字节)

目录 0 简介1 字符串基础2 字符串长度3 不受限制的字符串函数3.1 复制字符串3.2 连接字符串3.3 函数的返回值3.4 字符串比较 4 长度受限的字符串函数5 字符串查找基础5.1 查找一个字符串5.2 查找任何几个字符5.3 查找一个子串 6 高级字符串查找6.1 查找一个字符串前缀6.2 查找标…

饿补基础_1 |进位制、R进制之间转换及十进制编码

目录 数值数据的表示一.进位计数制理解1.你需要了解的概念2. 晦涩难懂的官方定义3 一看就会的例子4 值得收藏的进制对照表(二、八、十、十六进制)5 计算机为什么主要使用二进制 二.不同数制之间的转换1. 为什么会出现进制转换2. 各数制转十进制3. 十进制转二进制4. 二进制与八进…

java企业级信息系统开发学习笔记12 基于配置文件整合SSM框架实现用户登录

文章目录 一、学习目标&#xff08;一&#xff09;采用MVC架构 二、基于XML配置方式整合SSM框架实现用户登录&#xff08;一&#xff09;创建表&#xff08;二&#xff09;创建项目&#xff08;三&#xff09;添加相关依赖&#xff08;四&#xff09;创建日志属性文件&#xff…

leetcode51. N 皇后 (java)

leetcode 51 N 皇后 leetcode 51 N 皇后题目描述解题思路 代码演示leetcode52 N 皇后II leetcode 51 N 皇后 原题链接: https://leetcode.cn/problems/n-queens/ 题目描述 按照国际象棋的规则&#xff0c;皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研…

2023 华为 Datacom-HCIE 真题题库 07/12--含解析

多项选择题 1.[试题编号&#xff1a;190187] &#xff08;多选题&#xff09;如图所示的拓扑采用了VXLAN分布式网关&#xff0c;SW1上的VBDIF10配置了&#xff1a;arp-proxy local enable命令&#xff0c;则以下描述中正确的有哪些项&#xff1f; A、SW1收到PC1发往PC2的报文&…

【PHP】ThinkPhp6期末速通

目录 一、安装Composer二、设置Composer下载源三、Composer下载&#xff0c;安装TinkPHP6四、安装成功后 目录结构五、运行 ThinkPHP6 起步一、MVC二、单应用模式访问调试 三、安装视图四、模板渲染默认访问指定访问 五、模板变量默认赋值助手函数&#xff08;若不使用默认赋值…

K8s之Deployment控制器入门到深入详解

文章目录 一、Deployment 高级控制器理论1、Deployment控制器介绍2、Deployment工作原理 二、Deployment YAML编写及参数解释1、整体Deployment YAML资源清单内容&#xff1a;2、核心参数解释&#xff1a;3、Deployment更新策略&#xff1a;4、Deployment更新策略百分比方式计算…

内网穿透技术

文章目录 前言1. 安装JAVA2. MCSManager安装3.局域网访问MCSM4.创建我的世界服务器5.局域网联机测试6.安装cpolar内网穿透7. 配置公网访问地址8.远程联机测试9. 配置固定远程联机端口地址9.1 保留一个固定tcp地址9.2 配置固定公网TCP地址9.3 使用固定公网地址远程联机 转载自内…

测试必会 | 通过容器化 Python Web 应用掌握 Docker 容器核心技能

【摘要】 当多个窗口同时 attach 到同一个容器时&#xff0c;所有的窗口都会同步的显示&#xff0c;假如其中的一个窗口发生阻塞时&#xff0c;其它的窗口也会阻塞。attach 必须是登陆到一个已经运行的容器里&#xff0c;如果从这个容器中 exit 退出的话&#xff0c;会导致容器…

HNU-操作系统OS-实验Lab8

OS_Lab8_Experimental report 湖南大学信息科学与工程学院 计科 210X wolf (学号 202108010XXX) 实验目的 通过完成本次实验,希望能达到以下目标 了解基本的文件系统系统调用的实现方法;了解一个基于索引节点组织方式的Simple FS文件系统的设计与实现;了解文件系统抽…

Ace Admin前端框架笔记一概要与布局介绍

简要 Ace Admin官网 Dashboard - Ace Admin Ace Admin Git GitHub - bopoda/ace: Twitter bootstrap 3 admin template 下载地址&#xff1a;https://download.csdn.net/download/ok060/87843670 Ace是一款轻量且功能丰富的管理模板&#xff0c;干净且易于使用。 当前版本…

计组 第二章错题 2.2 运算方法和运算电路

选D 地址寄存器MAR是存储器部件 访存时暂存访存地址 符号位不变 附加位是符号位的扩展 选B A&#xff1a;检查加减 B&#xff1a;对 因为两个符号位一样 D&#xff1a;需要两个 存储单元把信号同时传给两个单元 用双符号位的方法 同0异1 符号相同 0 正 不同 为1 负 逻辑一样 原…

目标检测第三篇:基于SSD的目标检测算法

文章目录 SSD简介网络搭建卷积块下采样块主干网多层特征提起层输出头 数据处理形成训练TXTDatasetDataLoaderAnchors生成先验框匹配先验框位置 offset 损失函数训练代码及参考 SSD简介 SSD&#xff0c;全称Single Shot MultiBox Detector&#xff0c;是Wei Liu在ECCV 2016上提…

软件测试新人害怕不过试用期,教你几招使你安稳度过!!!

对于很多刚步入职场的新人来说&#xff0c;害怕自己试用期过不了&#xff0c;被辞退。别的行业我可能不知道该如何帮大家应对&#xff0c;但在测试行业我希望还是能给大家带俩一点帮助&#xff0c;希望大家能安稳度过试用期&#xff0c;并且成功入行。 保持初心&#xff0c;安稳…