C语言基础数据类型在内存中的存储方式详解
创作时间:
作者:
@小白创作中心
C语言基础数据类型在内存中的存储方式详解
引用
CSDN
1.
https://blog.csdn.net/white_melon/article/details/136890405
在C语言中,不同的数据类型在内存中所占据的内存空间不同。了解这些数据类型在内存中的存储方式,对于编写高效、正确的程序至关重要。本文将详细介绍整型、浮点型、字符型和指针类型在内存中的存储方式。
1. 整型
- 有符号整型:在内存中通常以补码的形式存储
- 无符号整型:以补码形式存储,所有位均用来表示数值,不存在符号位,因此所能表示的大小范围比有符号整形大。
正整数的原、反、补码都相同。
负整数的三种表示方法各不相同。
原码:直接将数值按照正负数的形式翻译成二进制得到的就是原码。
反码:将原码的符号位不变,其他位依次按位取反就可以得到反码。
补码:反码+1就得到补码。
2. 浮点型
- 单精度浮点型(float):根据 IEEE 754 标准(该标准的全称为IEEE二进制浮点数算术标准),通常占用 32 位(4字节),包括符号位(S)、阶码(E)和尾数(M)部分。
其与浮点数真实值的对应关系为:(M(mantissa,表尾数)即上图fraction)
(由于默认M的整数位为1,因此在存储时舍去整数位,只存储小数位,从而获得更大的精度。因此,M的真实值为尾数部分所表示的小数加1)
- 双精度浮点型(double):同样遵循 IEEE 754 标准,通常占用 64 位(8字节),具有更高的精度和更大的表示范围。
需要注意的是:即便双精度浮点数用于存储尾数的位更多,精度更高,但因为二进制转换的原因,它也无法完全精确地表示任何浮点数。
3. 字符型(char)
- 通常占用1字节。对于英文字符、数字和其他一些基本符号,通常使用ASCII编码。ASCII编码将每个字符映射为一个唯一的7位二进制数(实际存储时通常扩展为8位,即一个字节)。
例如,字符"A"的ASCII值是65(二进制为01000001),在内存中就以这个二进制序列进行存储。
5. 指针类型
- 在 C/C++ 中,指针类型存储的是内存地址,其大小通常与系统的指针大小相匹配,例如在32位系统中指针通常占4字节,在64位系统中占8字节。
热门推荐
泡脚之道:从头到脚的养生秘诀
招生数据为什么要等下一年公布
Vue面试题:你用过自定义指令吗?
男人与你断联后,再度联系你,是这个原因!
如何在不同应用场景下选择合适的低压开关柜标准?
非杭州市户籍职工离职提取公积金指南(条件+教程)
巨额债务+持续亏损+罢工:五张图分析波音公司的多事之秋
研究证实:高质量倾听是改变他人观点的关键
如何观看一座大教堂?细数欣赏哥特式建筑的五个视角
新手徒步单日徒步装备清单
阿里投资版图重构:收缩与聚焦下的战略变奏
网络安全转账指南:十大关键防护措施
美国现神秘鱼类,寿命可长达127年,越老越健康,免疫力也随之增强
如何分析医疗行业的股市表现
打造连贯性:如何通过过渡句提升论文的逻辑流畅性
如何写开源项目的readme文档
临床试验论文图表展示指南:从基线数据到计量资料
三坐标测量机的“柔性”特点及其在工业中的应用
一阶数字高通滤波器的设计与实现
第五人格所有角色名字大全-所有人物能力图鉴介绍
刑事辩护中的证据收集与审查
城市24小时 | 这座北方大省,迎来人口回流
如何提升商场管理能力的策略有哪些
智能化焊装车间的新篇章:RFID技术的深度应用与探索
饭店级炸酥肉制作教程:外酥里嫩的秘诀
车辆的性能表现如何进行综合评估?评估过程中需要关注哪些方面?
“核动力驴”是什么梗?
如何评估黄金投资的流动性与安全性?这种评估对投资选择有何影响?
如何不跟人争论就可以改变对方的观点?
探索历史人物张角的真实面貌与潜在地位