首页 > 其他分享 >C语言浮点数存储原理

C语言浮点数存储原理

时间:2024-03-19 20:14:00浏览次数:23  
标签:存储 浮点数 float 数据类型 C语言 浮点

1. 浮点型的原理介绍及在内存中的存储形式

C语言提供了浮点数据类型,单精度浮点数float和双精度浮点数double。浮点数属于不精确的数据类型,本文将通过float类型的原理和在内存中的存储形式来介绍浮点型不精确的原因。以float类型为例,来展示C语言中浮点型的神秘之处。

2. float类型介绍

float是C语言的基本数据类型中的一种,表示单精度浮点数。C语言规定单精度浮点型在内存占用4个字节,精度为7位,依据IEEE规定 :float在存储中都分为三个部分:

  • 符号位(Sign) : 0代表正,1代表为负;
  • 指数位(Exponent):用于存储科学计数法中的指数数据,并且采用移位存储;
  • 尾数部分(Mantissa):尾数部分;

其中float和double的存储方式如下图所示:

数据类型 符号位 指数 尾数
float 1bit 8bit 23bit
double 1bit 11bit 52bit

标签:存储,浮点数,float,数据类型,C语言,浮点
From: https://www.cnblogs.com/love-9/p/18083822

相关文章

  • 浮点数在内存中的存储
    在了解浮点数在内存中的存储之前,我们先了解一下整数在内存中的存储。整数就是直接以二进制的形式存储且存的都是补码,其有正负数之分,整数的原码、反码、补码相同,负数则是原码按位取反得反码,反码+1=补码,如果是负数,其最高位为1(其从原码到补码得过程中符号位不参与运算),如果是正数,......
  • 云存储系统的构成
    原文链接:https://answer.baidu.com/answer/land?params=ySNqY0HWoA4cK43GwScAIBUWbFlVAqDrZB05TtzSYR0d5QwcZGfOEU9t8MCuqPdk7wb9nRRb43GtGuc6KnxMDVikHPIPspwi450mrJ2Ab%2Bq2lLllaWdOXxtvMms9RZpx3MvJV3%2FWPfwvtDAqXz9RB2VPxXggJK29Nb4rbKweLr2Jtx%2FnJz5UbCUBMn6K3UnvLZT5yoDV......
  • C语言 自定义类型:结构体
    目录前言一、结构体类型1.1结构体的声明1.2 结构体变量的创建和初始化1.3结构体的特殊声明1.4结构体的自引用二、结构体的对齐2.1对齐规则2.2内存对齐的原因2.3修改默认对齐数2.4 结构体传参三、结构体实现位段3.1 位段的内存分配3.2 段的跨平台问......
  • C语言 数据在内存中的存储
    目录前言一、整数在内存中的存储二、大小端字节序和字节序判断2.1.练习一2.2练习二2.3练习三2.4练习四2.5练习五2.6练习六三、浮点数在内存中的存储3.1 浮点数存的过程3.2浮点数取的过程总结前言数据在内存中根据数据类型有不同的存储方式,今天我们......
  • C语言-整数与浮点数:内存存储的差异
    整数与浮点数在内存中的存储机制在计算机科学中,整数和浮点数是我们经常处理的两种数据类型。它们在内存中的存储方式决定了它们可以表示的范围、精度以及如何进行数学运算。了解这些基本概念对于理解计算机如何处理这些数据以及优化相关代码至关重要。整数在内存中的存储整......
  • C语言进阶篇之字符函数和字符串函数(含模拟实现库函数)
    本篇主要整理了C语言字符函数和字符串函数的介绍,使用,以及库函数的模拟,持续更新中。老铁们,整理不易,创作不易,先赞后看养成习惯,你的支持是对我更新最大的鼓励!函数介绍与模拟实现1.1strlen求字符串长度size_tstrlen(constchar*str);注:1.字符串已经'\0'作为结束标......
  • C语言判断回⽂字符串
    使用C语言判断这个字符串是否是回⽂字符串(字符串的长度小于等于30,字符串不包含空格),如果是回文字符串输出Yes,如果不是回⽂字符串输出No。回文串:是一个正读和反读都一样的字符串方法:1.使用两个指针分别放置在字符串的头和尾,进行比较,如果相同,则头++,尾–.不同则结束判断......
  • pinia在登录页面持久化存储
    安装pinianpminstallpinia创建一个store/index.jsimport{createPinia}from'pinia'//从pinia模块导入createPinia函数。Pinia是Vue.js的一个状态管理库,createPinia函数用于创建一个新的Pinia实例importpiniaPluginPersistfrom'pinia-plugin-persist'//pinia-plug......
  • mysql存储过程查询结果循环遍历 判断 赋值 游标等基本操作
    时间:2018-03-2617:58:45一、首先说下本篇博客所实现功能的背景和功能是怎样的:   背景:因为公司项目开始迁移新平台项目,所以以前的平台老数据以及订单信息需要拆分表,而且需要业务逻辑来分析以前的订单表,来拆分成另外的几个新表,包括增加新的流水分析,以及更新其他用户或者......
  • Mysql带返回值与不带返回值的2种存储过程
    时间:2018-03-3000:25:57过程1:带返回值:dropprocedureifexistsproc_addNum;createprocedureproc_addNum(inxint,inyint,outsumint)BEGINSETsum=x+y;end然后,执行过程,out输出返回值:callproc_addNum(2,3,@sum);select@sum;过程2:不带返回值:dropp......