十、C语言:数据存储(大端小端存储,整型、浮点型存储)

news2024/10/7 19:36:09

一、大端存储与小端存储

大端字节序:

数据的低位字节序内容存放在高地址处,高位字节序内容存放在低地址处

小端字节序:

数据的低位字节序内容存放在低地址处,高位字节序内容存放在高地址处

//每个地址单元对应一个字节


二、 整型存储

char a = -128;
//10000000 00000000 00000000 10000000
//11111111 11111111 11111111 01111111
//11111111 11111111 11111111 10000000 - 补码
//10000000 - a
printf("%u\n", a);

分析:字符型a以%u形式进行打印,发生整型提升,变为11111111 11111111 11111111 10000000。

因为是以无符号形式进行打印,所以补码与原码相等,结果为4294967168。


char a = 128;
//00000000 00000000 00000000 10000000
//10000000 - a
//发生整型提升,认为a是负数,补1
//11111111 11111111 11111111 10000000 
printf("%u\n", a);

结果为4294967168。


三、有符号char的取值范围 

注意: 10000000-> -128

char a[1000];
int i;
for(i=0; i<1000; i++)
{
    a[i] = -1 - i;
}
printf("%d\n", strlen(a));

 分析:-1 -2 -3 。。。 -127 -128 127 126 。。。 3 2 1 0 -1 -2 -3 。。。

strlen(a)遇到->\0停止,即遇到0停止。结果:128+127 = 255


四、浮点型存储 

	int n = 9;
	float* pf = (float*)&n;
	printf("n的值为%d\n", n);
	printf("* pf的值为%f\n", *pf); //整型方式存储,浮点型方式读取
	*pf = 9.0;
	printf("num的值为%d\n", n); //浮点型方式存储,整型方式读取
	printf("* pf的值为%f\n", *pf);

分析: 9《——》00000000 00000000 00000000 00001001

        以浮点数形式打印,E全为0,表示这个数很小,所以结果是0.000000


9.0按照浮点数进行存储,1001.0——》(-1)^0 * 1.001 * 2^3

s = 0; M = 001; E = 3+127 = 130

0 10000010 00100000000000000000000以10进制进行打印结果为1,091,567,616

	int n = 9;
	printf("%f\n", n);
	float m = 9.0;
	printf("%d\n", m);

4.1 写数据

浮点数:5.5   ——10进制

二进制:101.1 —— >1.011*2^2 ——>(-1)^0 * 1.011*2^2

s = 0; M = 1.011; E = 2 


4.1.1 对于32位的浮点数 

4.1.2 对于64位的浮点数 


1.
1≤M<2 ,也就是说,M可以写成 1.xxxxxx 的形式,其中xxxxxx表示小数部分。
IEEE 754规定,在计算机内部保存M时,默认这个数的第一位总是1,因此可以被舍去,只保存后面的xxxxxx部分。比如保存1.01的时候,只保存01,等到读取的时候,再把第一位的1加上去。这样做的目的,是节省1位有效数字。以32位浮点数为例,留给M只有23位,将第一位的1舍去以后,等于可以保存24位有效数字。

2.

科学计数法中的E是可以出现负数的,所以IEEE754规定,存入内存时E的真实值必须再加上一个中间数,对于8位的E,这个中间数是127;对于11位的E,这个中间数是1023。比如,2^10的E是10,所以保存成32位浮点数时,必须保存成10+127=137,即10001001。

浮点数:5.5   ——10进制

二进制:101.1 —— >1.011*2^2 ——>(-1)^0 * 1.011*2^2

s = 0; M = 1.011; E = 2 

s = 0; M = 011;    E = 2 +127 = 129

0 10000001 01100000000000000000000

注意M = 011从左向右写


 4.2 读数据

 4.2.1 E不全为0或不全为1(正常情况)

浮点数就采用下面的规则表示,即指数E的计算值减去127(或1023),得到真实值,再将
有效数字M前加上第一位的1。

4.2.2 E全为0

表示存储的数据是一个很小的数,2^-127(-127+127=0);
这时,浮点数的指数E等于1-127(或者1-1023)即为真实值,有效数字M不再加上第一位的1,而是还原为0.xxxxxx的小数。这样做是为了表示±0,以及接近于0的很小的数字。

4.2.3 E全为1

表示存储的数据是一个很大的数,2^128(128+127=255, E全为1);
这时,如果有效数字M全为0,表示±无穷大(正负取决于符号位s);

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

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

相关文章

通过一次下载任务抓包分析TCP/IP协议

TCP/IP协议分析 一、实验简介 本实验主要讲解TCP/IP协议的应用&#xff0c;通过一次下载任务&#xff0c;抓取TCP/IP数据报文&#xff0c;对TCP连接和断开的过程进行分析&#xff0c;查看TCP“三次握手”和“四次挥手”的数据报文&#xff0c;并对其进行简单的分析。 二、实…

告别冗长代码:Java Lambda 表达式如何简化你的编程

在现代软件开发中&#xff0c;高效和简洁的代码变得越来越重要。Java作为一门成熟而广泛使用的编程语言&#xff0c;一直在不断进化&#xff0c;以满足开发者的需求。Java 8的推出标志着一次重要的飞跃&#xff0c;其中最引人注目的特性之一便是Lambda表达式。 Lambda表达式为J…

网络协议三

数据中心 一、DNS 现在网站的数目非常多&#xff0c;常用的网站就有二三十个&#xff0c;如果全部用 IP 地址进行访问&#xff0c;恐怕很难记住 根 DNS 服务器 &#xff1a;返回顶级域 DNS 服务器的 IP 地址 顶级域 DNS 服务器&#xff1a;返回权威 DNS 服务器的 IP 地址 …

60V大功率半桥GaN半桥驱动器替代LMG1210

1. 产品特性&#xff08;替代LMG1210&#xff09; ➢ 工作频率高达 10MHz ➢ 20ns 典型传播延迟 ➢ 5ns 高侧/低侧匹配 ➢ 两种输入控制模式 ➢ 具有可调死区时间的单个 PWM 输入、 独立输入模式 ➢ 1.5A 峰值拉电流和 3A 峰值灌电流 ➢ 内置 5V LDO ➢ 欠压保护 ➢ 过…

前端怎么预览pdf

1.背景 后台返回了一个在线的pdf地址&#xff0c;需要我这边去做一个pdf的预览&#xff08;需求1&#xff09;&#xff0c;并且支持配置是否可以下载&#xff08;需求2&#xff09;&#xff0c;需要在当前页就能预览&#xff08;需求3&#xff09;。之前我写过一篇预览pdf的文…

人工智能智能体的五大能力等级:从工具到超人

在人工智能(AI)的世界中,智能体的性能和能力可以被划分为不同的等级。这些等级从简单的工具到超越人类能力的超人智能体。本文将探讨AI智能体的五个能力等级,以及每个等级的关键技术、性能、能力和使用场景。 等级 0:无AI的基础工具 在这个阶段,我们没有真正的AI,只有…

目标检测——铁轨表面裂纹数据集

引言 亲爱的读者们&#xff0c;您是否在寻找某个特定的数据集&#xff0c;用于研究或项目实践&#xff1f;欢迎您在评论区留言&#xff0c;或者通过公众号私信告诉我&#xff0c;您想要的数据集的类型主题。小编会竭尽全力为您寻找&#xff0c;并在找到后第一时间与您分享。 …

【数据结构】——线性表(顺序表)——内有代码详解

目录 一、引言 二、线性表 2.1 定义 2.2 特点 三、顺序表 3.1 顺序表的概念 3.2 顺序表的特点 3.3 顺序表的定义 3.3.1 静态定义 3.3.2 动态定义 3.4 顺序表的初始化 3.4.1 静态初始化 3.4.2 动态初始化 3.5 顺序表的销毁 3.6 顺序表元素的打印 3.7 顺序表的插入…

眼精星票据识别系统,助您快速识别票据

有没有遇到过这样的情况&#xff1a;手头一堆票据、证件和卡片&#xff0c;看着就头疼&#xff0c;更别提一一整理成数据了。说真的&#xff0c;这简直就是个无尽的噩梦&#xff01;好在&#xff0c;现在有了眼精星票证识别系统&#xff0c;一切都变得轻松起来。记得上次&#…

Android 动态修改APP图标

文章目录 Android 动态修改APP图标定义activity-alias修改图标和App名监听APP前后台状态切换进入后台时切换修改图标和名字缺点 Android 动态修改APP图标 修改前&#xff1a; 修改后&#xff1a; 定义activity-alias 在 AndroidManifest.xml 中设置 activity-alias&#xff1…

python类与面向对象编程

⚠️⚠️⚠️本章后半部分难度激增&#xff0c;请一定认真学习⚠️⚠️⚠️ ⚠️⚠️⚠️本章后半部分难度激增&#xff0c;请一定认真学习⚠️⚠️⚠️ ⚠️⚠️⚠️本章后半部分难度激增&#xff0c;请一定认真学习⚠️⚠️⚠️ 上篇回顾&#xff1a; 上篇我们帮天下第一…

基于STM32开发的智能水族箱管理系统

目录 引言环境准备智能水族箱管理系统基础代码实现&#xff1a;实现智能水族箱管理系统 4.1 温度传感器数据读取4.2 水泵与加热器控制4.3 水位传感器数据读取4.4 用户界面与显示应用场景&#xff1a;水族箱管理与优化问题解决方案与优化收尾与总结 1. 引言 智能水族箱管理系…

从0到1实现一个自己的大模型,实践中了解模型流程细节

前言 最近看了很多大模型&#xff0c;也使用了很多大模型。对于大模型理论似乎很了解&#xff0c;但是好像又缺点什么&#xff0c;思来想去决定自己动手实现一个 toy 级别的模型&#xff0c;在实践中加深对大语言模型的理解。 在这个系列的文章中&#xff0c;我将通过亲手实践…

【OPENMV】学习记录 (持续更新)

一、基础知识 1 设置彩色&#xff0f;黑白&#xff1a; sensor.set_pixformat() 设置像素模式。 sensor.GRAYSCALE: 灰度&#xff0c;每个像素8bit。sensor.RGB565: 彩色&#xff0c;每个像素16bit。 2 设置图像大小&#xff1a; sensor.set_framesize() 设置图像的大小 sen…

day51 动态规划 121. 买卖股票的最佳时机 122.买卖股票的最佳时机II

121. 买卖股票的最佳时机 动态规划 1.确定dp数组&#xff08;dp table&#xff09;以及下标的含义 dp[i][0] 表示第i天持有股票所得最多现金 &#xff0c;这里可能有同学疑惑&#xff0c;本题中只能买卖一次&#xff0c;持有股票之后哪还有现金呢&#xff1f; 其实一开始现…

解密智慧校园解决方案:赋能数字化教育的未来

在当今数字化时代&#xff0c;智慧校园解决方案正以惊人的速度改变着教育界的面貌。随着科技的快速发展&#xff0c;数字化教育已经逐渐成为现代教育的核心。智慧校园解决方案作为一个集技术、教育和创新于一体的综合性项目&#xff0c;为学校提供了许多机遇和挑战。本文将揭示…

期望18K,4年前端Cvte 视源股份一面挂

一面 1、自我介绍&#xff1f;毕业的时候一直在 xx 公司&#xff0c;你基本都在做什么项目&#xff1f; 2、你讲一下你主要负责哪一块的&#xff1f;balabala 3、你们的 json 是怎么定义组件间的联动的&#xff1f; 4、怎么确定区分两个 input&#xff1f; 5、你们是怎么触…

Vue3入门 - vue3相比于vue2的优点,及如何创建Vue3项目

目录 一、认识Vue3 1. Vue2 选项式 API vs Vue3 组合式API 2. Vue3的优势 二、使用create-vue搭建Vue3项目 1. 认识create-vue 2. 使用create-vue创建项目 3.熟悉项目和关键文件 一、认识Vue3 1. Vue2 选项式 API vs Vue3 组合式API <script>export default …

文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《考虑发用电相似性的海上风电中长期双边协商交易优化决策模型》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

【CV算法工程师必看】作为一个图像算法工程师,需要会什么,要学哪些技术栈?

作为一个图像算法工程师,除了基本的编程技能和理论知识,还需要掌握一系列的技术栈。以下是详细的技能和技术栈分类: 编程语言 Python: 主要用于快速开发和原型设计。常用库:OpenCV、Pillow、NumPy、SciPy、Scikit-image、TensorFlow、PyTorch。C++: 高性能要求的项目中广…