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浮点型数据在内存中的存储方式相关推荐

  1. 【C语言】浮点型数据在内存中的存储方式

    目录 一. 前言 二. 问题的引出 三. 两类浮点型数据(float.double)在内存中的存储方式 3.1 两类浮点型数据的存储模型 3.1.1 浮点型数据数值读取的通用模型 3.1.2 floa ...

  2. c语言double数据存储形式,C语言 float、double数据在内存中的存储方式

    float在内存中占4个字节(32bit),32bit=符号位(1bit)+指数位(8bit)+底数位(23bit) 指数部分 指数位占8bit,可以表示数值的范围是0-(表示0~255一共256个数 ...

  3. JavaScript中数据在内存中的存储方式

    JavaScript中数据在内存中的存储方式 1.js数据类型分类 简单数据类型:Number.String.Boolean.Undefined.Null 复杂数据类型:Object.Array.Fu ...

  4. C语言浮点数据在内存中的存储方式

    float在内存中的存储遵循IEEE 754标准.在C/C++中,float类型占4个字节即32位 , 这32位分成了3部分: 符号位最为简单,如果你存储的是正数那么符号数就是0.如果是负数,则为1. ...

  5. C语言 float、double数据在内存中的存储方式

    float在内存中占4个字节(32bit),32bit=符号位(1bit)+指数位(8bit)+底数位(23bit) 指数部分 指数位占8bit,可以表示数值的范围是0-255(表示0~255一共25 ...

  6. 数据在内存中的存储方式——数据类型、内存地址

    一.数据类型 首先必须得明白,在计算机中,任何文件.图片.视频等都是以二进制格式储存在储存介质中的一串编码,对于二进制数的每一位称作1bit(比特).这里必须得再说一下,byte(字节)和bit(比特 ...

  7. 对于c语言int类型和float,以及double类型表示范围的计算

    首先说一下我原来错误的认识 int是32个bit, 如果我们把第一位理解为符号位,那么很显然int的范围是-(2^31-1)~2^31-1 但是实际上我们都知道int的最小值是-2^31次.. 为什么 ...

  8. 【C语言】浮点型数据在内存中的存储

  9. C语言——深度剖析数据在内存中的存储

    大家好!我是保护小周ღ,本期为大家带来的是深度剖析数据在内存中的存储,不知道,大家学了这么久C语言,有没有想过一个问题,我们在程序设计中的数据是怎么在计算机中存储的?我们都知道 一个整型数据 int ...

最新文章

  1. 在Ubuntu 14.04 64bit上安装StarUML 2.5版本
  2. ASPNET登陆总结
  3. 2017/05/07 java 基础 随笔
  4. sql server 清除日志
  5. 《微信公众平台开发:从零基础到ThinkPHP5高性能框架实践》——3.3 微信开发者中心...
  6. seajs的CMD模式的优势以及使用
  7. pycharm提醒:PEP 8: invalid escape sequence xx 解决办法 (转义序列无效,需改成双反斜杠\\)
  8. asp 与 database (3)
  9. Python编程语言简介
  10. SAP Spartacus 服务器端渲染的依赖注入之 ProductPageEventBuilder
  11. python大牛自学心得_自学Python编程的第十天(希望有IT大牛看见的指点小弟我,万分感谢)---------来自苦逼的转行人...
  12. 卡片选项页面 JTabbedPane 的使用
  13. 红帽学习笔记[RHCSA] 第七课[网络配置相关]
  14. atitit.seo 发帖关键词以及链接的制作.doc
  15. 宽度学习(Broad Learning System)
  16. 宝可梦 序列号认证服务器发生了错误,宝可梦探险寻宝无法连接服务器是什么原因...
  17. [CUPOJ] 直角三角形周长 枚举优化 题解
  18. STM32单片机使用W5500作为http server通过网页进行配参(一.使用VScode模拟试验)
  19. 拥有这十种气质的女孩更有男人缘
  20. Python pandas 空值缺失值(NaN)处理填充替换判断删除含缺失空值数据行

热门文章

  1. linux r语言内存查看,R语言统计与分布的相关知识
  2. Latex语法数学公式参考整理
  3. 【云原生】RPC技术选型
  4. CentOS 安装与配置
  5. 2022年系统集成项目管理工程师考试知识点:项目成本管理
  6. 无人机的自主与智能控制
  7. NLP_learning 中文基本任务与处理(分词、停用词、词性标注、语句依存分析、关键词抽取、命名实体识别)介绍、jieba工具库
  8. 基于深度强化学习的车道线检测和定位(Deep reinforcement learning based lane detection and localization) 论文解读+代码复现
  9. Torch.arange函数详解
  10. Dell戴尔G15 5511笔记本电脑原装出厂Windows11系统恢复原厂OEM系统