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字节。
热门推荐
清朝内阁制的历史背景是怎么样的?
茶艺师资格证轻松到手,超详细攻略奉上
揭秘伪劣农药:简易直观识别技巧
《李白集校注》:瞿蜕园、朱金城校注,上海古籍出版社1980版(全4册)
估值的含义是什么?这种估值对投资决策有何指导意义?
电工证证书查询入口和电子版证书下载流程操作指南
冬季如何确保孩子睡得好,有什么建议吗?
港大深圳医院通过“港澳药械通”引进创新药物治疗系统性红斑狼疮
黄山旅游交通全攻略:从机场到景区,一文详解各类交通方式
橘红颗粒的适应症、用药注意事项及禁忌
俄狄浦斯:命运悲剧与人类反思
鸡内金应该空腹还是餐后吃?专家解读服用时间与注意事项
培养孩子的学习兴趣与创造力比提前教育更重要
世界最美十大名花排名 荷花上榜,第一是14个国家的国花
查询酒店入住记录时如何确保合法合规
算爱情婚姻未来的塔罗,塔罗未来婚姻生活
七月初一先天节,遵循三习俗保平安,老传统里的大智慧
滚柱丝杠行业深度分析:国产替代蓄势待发
仓鼠专业饲料是什么?一文详解仓鼠饲料的种类与喂食原则
正确的抱狗狗手法,让你的宠物更舒适
江苏新晋网红古镇:窑湖小镇斥资80亿打造,景色堪比乌镇!
数控等离子切割技术在钢结构生产中的应用和发展
“吹”字的意思和解释,“吹”字的成语和组词
手机打游戏流量消耗全攻略:从计算到控制
银饰如何保养才不会氧化 银饰可以用油保养吗
去澳洲留学买手机的最佳选择是什么
水星12星座,在何处释放自我?“写下来,痛苦就会过去”
算法的特征如何讲解出来
晋城:两晋时期的历史印记
多特蒙德VS巴黎:解析战术,探讨半决赛策略