C语言--------数据在内存中的存储
1.整数在内存中的存储
整数在内存是以补码的形式存在的;
整型家族包括char,int ,long long,short类型;
因为char类型是以ASCII值形式存在,所以也是整形家族;
这四种都包括signed,unsigned两种,即有符号和无符号;
当我们只写char,int ,long long,short时候,会被默认是有符号的;

分析过程:

100行:-1的二进制原码;
101,102行:-1的反码和补码;
103行:32比特位,4个字节,char只有1个字节,4个字节放到1个字节里面不够放,所以会截断,即只保留最后的8个比特位;
106行:根据自身类型进行整形提升得到补码;char a和signed char b都是有符号的,所以提升的时候补上最高位,也就是1;
107,108行:进行转化,得到原码,因为打印的是原码;
112行:根据自身类型进行整形提升得到补码;无符号的c高位补上0得到补码;高位是0--->正数-->原码反码补码相同,二进制转换十进制得到255;
2.大小端字节序的判断
其实超过⼀个字节的数据在内存中存储的时候,就有存储顺序的问题,按照不同的存储顺序,我们
分 为⼤端字节序存储和⼩端字节序存储
大端:低位字节在高地址处,高位字节在低地址处;
小端:低位字节在低地址处,高位字节在高地址处;

95行是:10的二进制表示;
96行是:转换成16进制,依据4个2进制位转换成1个16进制位;
由图知:低位0a位于低地址614(614,615,616,617是a的地址,相互比较,614是低地址),由此可见这是小端存储。
3.浮点数在内存里面的存储
任意⼀个⼆进制浮点数V可以表⽰成下⾯的形式: V = (−1)^S* M *2^E;
float类型:32比特位,SEM对应1,8,32;
double类型:64比特位,SEM对应1,11,52;
例如9.0可以写作1001.0--->1.001*2^3;
(1)浮点数存的过程
M在1~2之间,所以存的时候只存小数部分,就是小数点以后的;
E是一个无符号整数,所以可能是负数,例如,1.5就是1*2^-1因为2的-1次方就是0.5,
存的时候,float型的E要加上127,double型的要加上1023;
(2)浮点数取的过程
0.5 的⼆进制形式为0.1,则为1.0*2^(-1),其 E为-1+127(中间值)=126(存),表⽰为01111110,⽽尾数1.0去掉整数部分为0,补⻬0到23位 00000000000000000000000,存的时候加上127,取的时候减去127;
当E全是0:浮点数的指数E等于-126(-1022),有效数字M不再加上第⼀位的1,⽽是还 原为0.xxxxxx的⼩数;
当E全是1:表示无穷大;

以此为例:int n以float打印时,9是1001.0,1.001*2^3;
0000 0000 0000 0000 0000 0000 0000 1001(存)
S=0;E全是0;所以E是-126(取);
就是(-1)^0*0.000 0000 0000 0000 0000 0000 1001*2^-126,所以打印0.000000;
浮点数9.0 等于⼆进制的1001.0,
是:1.001×2^3 -------->所以: 9.0 = (−1)^0* (1.001) ∗ 2^3;
E=3+127=130;
0 10000010 001 0000 0000 0000 0000 0000
首位0表示是正数,原码反码补码相同,打印1091567616。
相关文章:
C语言--------数据在内存中的存储
1.整数在内存中的存储 整数在内存是以补码的形式存在的; 整型家族包括char,int ,long long,short类型; 因为char类型是以ASCII值形式存在,所以也是整形家族; 这四种都包括signed,unsigned两种,即有符号和无符号&am…...
【Java】零基础蓝桥杯算法学习——线性动态规划(一维dp)
线性dp——一维动态规划 1、考虑最后一步可以由哪些状态得到,推出转移方程 2、考虑当前状态与哪些参数有关系,定义几维数组来表示当前状态 3、计算时间复杂度,判断是否需要进行优化。 一维动态规划例题:最大上升子序列问题 Java参…...
Excel模板1:彩色甘特图
Excel模板1:彩色甘特图 分享地址 当前效果:只需要填写进度, 其余效果都是自动完成的 。 阿里网盘永久分享:https://www.alipan.com/s/cXhq1PNJfdm 省心。能用公式的绝不使用手动输入。 这个区域以及标题可以手动输入…...
如何重新安装 macOS
你可以使用电脑的内建恢复系统“macOS 恢复”来重新安装 Mac 操作系统。不但简单快捷,而且重新安装后不会移除你的个人数据。 将 Mac 关机 选取苹果菜单 >“关机”,然后等待 Mac 关机。如果你无法将 Mac 关机,请按住它的电源按钮最长 …...
论文阅读-Pegasus:通过网络内一致性目录容忍分布式存储中的偏斜工作负载
论文名称:Pegasus: Tolerating Skewed Workloads in Distributed Storage with In-Network Coherence Directories 摘要 高性能分布式存储系统面临着由于偏斜和动态工作负载引起的负载不平衡的挑战。本文介绍了Pegasus,这是一个利用新一代可编程交换机…...
【PTA|编程题|期末复习】字符串(一)
【C语言/期末复习】字符和字符串函数(附思维导图/例题) 目录 7-1 组织星期信息 输入样例 (repeat3) : 输出样例: 代码 7-2 查找指定字符 输入格式: 输出格式: 输入样例1: 输出样例1: 输入样例2: …...
数据库基本操作2
一.DML(Data Manipulation Language) 用来对数据库中表的数据记录进行更新 关键字:增删改 插入insert 删除delete 更新update 1.数据插入 insert into 表(列名1,列名2,列名3……)values&a…...
BTC破5W+QAQ
比特币突破5万美元 创2021年来最高 比特币在龙年伊始涨超6.8%。在大年初四(2月13日)一度最高涨至5万零383美元。 今年1月,当市场期待已久的现货比特币交易所挂牌基金(ETF)推出后,比特币遭抛售,…...
Xubuntu16.04系统中修改系统语言和系统时间
1.修改系统语言 问题:下图显示系统语言不对 查看系统中可用的所有区域设置的命令 locale -a修改/etc/default/locale文件 修改后如下: # File generated by update-locale LANG"en_US.UTF-8" LANGUAGE"en_US:en"LANG"en_US…...
内网穿透 | 推荐两个免费的内网穿透工具
目录 1、简介 2、Ngrok 2.1、下载安装 2.2、运行 2.3、固定域名 2.4、配置多服务 3、cpolar 3.1、下载安装 3.2、运行 🍃作者介绍:双非本科大三网络工程专业在读,阿里云专家博主,专注于Java领域学习,擅长web应…...
Android中代码生成图片高级部分
1、引言 上一篇文章已经介绍了使用bitmap对象生成图片,但android中不仅仅可以直接使用bitmap对象生成图片,也能借助bitmap对象将布局文件转化为图片,实际应用时,我们需要将两者结合起来,只有这样才能生成更加绚丽的图片…...
计算机网络——09Web-and-HTTP
Web and HTTP 一些术语 Web页:由一些对象组成对象可以是HTML文件、JPEG图像,JAVA小程序,声音剪辑文件等Web页含有一个基本的HTML文件,该基本HTML文件又包含若干对象的引用(链接)通过URL对每个对象进行引用…...
【教程】MySQL数据库学习笔记(一)——认识与环境搭建(持续更新)
写在前面: 如果文章对你有帮助,记得点赞关注加收藏一波,利于以后需要的时候复习,多谢支持! 【MySQL数据库学习】系列文章 第一章 《认识与环境搭建》 第二章 《数据类型》 文章目录 【MySQL数据库学习】系列文章一、认…...
软件测试-测试用例研究-如何编写一份优秀的测试用例
什么是测试用例 测试用例是一组由测试输入、执行条件、预期结果等要素组成,以完成对某个特定需求或者目标测试的数据,体现测试方案、方法、技术和策略的文档。测试用例是软件测试的核心,它把测试系统的操作步骤用文档的形式描述出来…...
计网day1
RTT:往返传播时延(越大,游戏延迟) 一.算机网络概念 网络:网样的东西,网状系统 计算机网络:是一个将分散得、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功…...
vLLM vs Text Generation Interface:大型语言模型服务框架的比较
在大型语言模型(LLM)的世界中,有两个强大的框架用于部署和服务LLM:vLLM 和 Text Generation Interface (TGI)。这两个框架都有各自的优势,适用于不同的使用场景。在这篇博客中,我们将对这两个框架进行详细的…...
[AIGC] 上传文件:后端处理还是直接阿里云OSS?
在构建Web应用时,我们经常需要处理用户上传的文件。这可能是图片、视频、文档等各种各样的文件。但是,上传文件的方式有很多种,最常见的两种方式是:通过后端处理,或者直接上传至云存储服务,如阿里云OSS。那…...
速盾cdn:香港服务器如何用国内cdn
在国内使用香港服务器的情况下,可以考虑使用速盾CDN来提供加速服务。速盾CDN是一种专业的内容分发网络解决方案,可以通过使用不同节点的服务器来提供高速的内容传输和访问。 首先,使用速盾CDN可以帮助解决香港服务器与国内用户之间的延迟和带…...
深入学习Pandas:数据连接、合并、加入、添加、重构函数的全面指南【第72篇—python:数据连接】
深入学习Pandas:数据连接、合并、加入、添加、重构函数的全面指南 Pandas是Python中最强大且广泛使用的数据处理库之一,提供了丰富的函数和工具,以便更轻松地处理和分析数据。在本文中,我们将深入探讨Pandas中一系列数据连接、合…...
IDEA中mybatis配置文件表名显示红色,提示 Unable to resolve table ‘xxx‘
问题:IDEA中mybatis配置文件表名显示红色,提示 Unable to resolve table ‘xxx’ 解决方法: 使用快捷提示键 Alt Enter,选择 Go to SQL Resolution Scopes(转到SQL的解析范围)...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
