C语言int类型和float浮点型数据在内存中的存储方式
int 类型在内存中占4个字节,而一个字节是8个比特位,所以int类型占32个比特位。
float类型在内存中同样也占4个字节,所以其也是占32个比特位。
一个比特位就是一个0或1,所以其在二进制位数如下
在这个中每位可能是0,也可能是1,不同的0、1组合,就表示不同的int类型数或float类型数。
Int类型的存储方式
首先明白一点,int类型在内存中存储是以补码的形式。
明白第二点,正数的原码、反码、补码都相同,即写出原码,同时也是他的反码和补码。
而对于负数来说:
原码:整数以二进制写下的形式就是原码。
反码:除符号位(二进制的首位,首位是0表示正数,首位是1表示负数)外,其他位按位取反,就是反码。
补码:反码+1,就得到补码。
例1
如例1我们就写出来了正数9和负数-9的二进制码,但是在内存中是以16进制进行存储显示的。
一位16进制位数代表4位二进制数,所以就得到:
所以
9在内存中存进去的就是:
00 00 00 09;
-9在内存中存进去的就是:
ff ff ff f7;
注:编译器存储内容会采用两种存储节序(大端存储,小端存储),不同的编译器有不同的存储节序。对于大端存储,9的16进制存进去会变成是:00 00 00 09;对于小端存储,9的16进制存进去是:09 00 00 00。
Float类型的存储方式
float类型的存储方式和int类型不同,所以上面的原码、补码、反码也就不使用于float类型。
在C语言中,浮点型二进制的存储按照IEE 754标准,也就是任何一个浮点型数可以表示为:
(-1)^S*M*2^E 其中1<=M<2
但是IEE 754又有一项规定,
由于M的整数位始终为1,所以可以省去,记省去1后的M为M';
由于E是一个无符号整数,所以对于float类型E要加上127,记加上127后的E为E'。
float的存储顺序为:
例:
所以,
float i=5.5,在内存中存的就是:
40 b0 00 00;
float a=-1.5,在内存存的就是:
bf b0 00 00;
C语言int类型和float浮点型数据在内存中的存储方式相关推荐
- 【C语言】浮点型数据在内存中的存储方式
目录 一. 前言 二. 问题的引出 三. 两类浮点型数据(float.double)在内存中的存储方式 3.1 两类浮点型数据的存储模型 3.1.1 浮点型数据数值读取的通用模型 3.1.2 floa ...
- c语言double数据存储形式,C语言 float、double数据在内存中的存储方式
float在内存中占4个字节(32bit),32bit=符号位(1bit)+指数位(8bit)+底数位(23bit) 指数部分 指数位占8bit,可以表示数值的范围是0-(表示0~255一共256个数 ...
- JavaScript中数据在内存中的存储方式
JavaScript中数据在内存中的存储方式 1.js数据类型分类 简单数据类型:Number.String.Boolean.Undefined.Null 复杂数据类型:Object.Array.Fu ...
- C语言浮点数据在内存中的存储方式
float在内存中的存储遵循IEEE 754标准.在C/C++中,float类型占4个字节即32位 , 这32位分成了3部分: 符号位最为简单,如果你存储的是正数那么符号数就是0.如果是负数,则为1. ...
- C语言 float、double数据在内存中的存储方式
float在内存中占4个字节(32bit),32bit=符号位(1bit)+指数位(8bit)+底数位(23bit) 指数部分 指数位占8bit,可以表示数值的范围是0-255(表示0~255一共25 ...
- 数据在内存中的存储方式——数据类型、内存地址
一.数据类型 首先必须得明白,在计算机中,任何文件.图片.视频等都是以二进制格式储存在储存介质中的一串编码,对于二进制数的每一位称作1bit(比特).这里必须得再说一下,byte(字节)和bit(比特 ...
- 对于c语言int类型和float,以及double类型表示范围的计算
首先说一下我原来错误的认识 int是32个bit, 如果我们把第一位理解为符号位,那么很显然int的范围是-(2^31-1)~2^31-1 但是实际上我们都知道int的最小值是-2^31次.. 为什么 ...
- 【C语言】浮点型数据在内存中的存储
- C语言——深度剖析数据在内存中的存储
大家好!我是保护小周ღ,本期为大家带来的是深度剖析数据在内存中的存储,不知道,大家学了这么久C语言,有没有想过一个问题,我们在程序设计中的数据是怎么在计算机中存储的?我们都知道 一个整型数据 int ...
最新文章
- 在Ubuntu 14.04 64bit上安装StarUML 2.5版本
- ASPNET登陆总结
- 2017/05/07 java 基础 随笔
- sql server 清除日志
- 《微信公众平台开发:从零基础到ThinkPHP5高性能框架实践》——3.3 微信开发者中心...
- seajs的CMD模式的优势以及使用
- pycharm提醒:PEP 8: invalid escape sequence xx 解决办法 (转义序列无效,需改成双反斜杠\\)
- asp 与 database (3)
- Python编程语言简介
- SAP Spartacus 服务器端渲染的依赖注入之 ProductPageEventBuilder
- python大牛自学心得_自学Python编程的第十天(希望有IT大牛看见的指点小弟我,万分感谢)---------来自苦逼的转行人...
- 卡片选项页面 JTabbedPane 的使用
- 红帽学习笔记[RHCSA] 第七课[网络配置相关]
- atitit.seo 发帖关键词以及链接的制作.doc
- 宽度学习(Broad Learning System)
- 宝可梦 序列号认证服务器发生了错误,宝可梦探险寻宝无法连接服务器是什么原因...
- [CUPOJ] 直角三角形周长 枚举优化 题解
- STM32单片机使用W5500作为http server通过网页进行配参(一.使用VScode模拟试验)
- 拥有这十种气质的女孩更有男人缘
- Python pandas 空值缺失值(NaN)处理填充替换判断删除含缺失空值数据行
热门文章
- linux r语言内存查看,R语言统计与分布的相关知识
- Latex语法数学公式参考整理
- 【云原生】RPC技术选型
- CentOS 安装与配置
- 2022年系统集成项目管理工程师考试知识点:项目成本管理
- 无人机的自主与智能控制
- NLP_learning 中文基本任务与处理(分词、停用词、词性标注、语句依存分析、关键词抽取、命名实体识别)介绍、jieba工具库
- 基于深度强化学习的车道线检测和定位(Deep reinforcement learning based lane detection and localization) 论文解读+代码复现
- Torch.arange函数详解
- Dell戴尔G15 5511笔记本电脑原装出厂Windows11系统恢复原厂OEM系统