返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言浮点数怎么使用
  • 555
分享到

C语言浮点数怎么使用

2023-06-30 07:06:02 555人浏览 安东尼
摘要

今天小编给大家分享一下C语言浮点数怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、内存中的浮点数浮点数在内存的存储

今天小编给大家分享一下C语言浮点数怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

一、内存中的浮点数

浮点数在内存的存储方式为:符号位,指数,尾数

类型符号位指数尾数
float1位(第31位)8位(第23--30位)23位(第0--22位)
double1位(第63位)11位(第52--62位)52位(第0--51位)

注:float 与 double 类型的数据在计算机内部的表示法是相同的,但由于所占存储空间的不同,其分别能够表示的数值范围和精度不同。

二、浮点数存储实例

浮点数的转换

  • 将浮点数转换成二进制

  • 用科学计数法表示二进制浮点数

  • 计算指数偏移后的值

注意:计算指数时需要加上偏移量,而偏移量的值与类型有关。

示例:对于指数6,偏移后的值如下:

float:127 + 6 -> 133

double:1023 + 6-> 1029

实数 8.25 的在内存中的 float 表示

25的二进制表示:1000.01 -> 1.00001 * (2 ^ 3)

  • 符号位:0

  • 指数:127 + 3 -> 130 10000010

  • 小数:00001

内存中 8.25 的 float 表示:

  • 0 10000010 00001000000000000000000 -> 0x41040000

下面看一下 8.25 是不是在内存中表示为 0x41040000 吧:

#include <stdio.h> int main(){    float f = 8.25;    unsigned int* p = (unsigned int*)&f;    printf("0x%08X\n", *p);    return 0;}

下面为输出结果:

C语言浮点数怎么使用

三、浮点类型的秘密

首先看一下 int 类型和 float 类型的范围:

int 类型的范围:[-2 ^ 31,2 ^ 31 - 1]

float 类型的范围:[-3.4 * 10 ^ 38,3.4 * 10 ^ 38]

这就出现一个问题:int 和 float 都占4个字节的内存,为什么 float 却比 int 的范围大得多呢?

解释如下:

  • float 能表示的具体数字的个数与 int 相同

  • float 可表示的数字之间不是连续的,存在间隙

  • float 只是一种近似的表示法,不能作为精确数使用

  • 由于内存表示法相对复杂,float 的运算速度比 int 慢得多

注意:double 与 float 具有相同的内存表示法,因此 double 也是不精确的。由于 double 占用的内存较多,所能表示的精度比 float 高。

下面看一段 float 类型的不精确示例代码:

#include <stdio.h> int main(){    float f = 3.1415f;    float fl = 123456789;    printf("%0.10f\n", f);    printf("%0.10f\n", fl);    return 0;}

下面为输出结果:

C语言浮点数怎么使用

这个示例就是表示 f 和 fl 小数点的后 10 位,结果表明,float 只是一种近似的表示法,不能作为精确数使用以及float 可表示的数字之间不是连续的,存在间隙。

以上就是“C语言浮点数怎么使用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网其他教程频道。

--结束END--

本文标题: C语言浮点数怎么使用

本文链接: https://lsjlt.com/news/327640.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C语言浮点数怎么使用
    今天小编给大家分享一下C语言浮点数怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、内存中的浮点数浮点数在内存的存储...
    99+
    2023-06-30
  • C语言怎么输出浮点数
    本篇内容主要讲解“C语言怎么输出浮点数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言怎么输出浮点数”吧!使用 printf() 与 %f 输出浮点数...
    99+
    2023-06-17
  • C语言入门之浮点数
    目录浮点数的输出常用的库函数整数与浮点数的转换总结 实际开发中使用double,而不使用float 浮点数的输出 float采用%f占位符。 double采用%lf占位符。测试结果...
    99+
    2024-04-02
  • C语言浮点函数中的modf和fmod怎么用
    这篇文章给大家分享的是有关C语言浮点函数中的modf和fmod怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。modf函数可以提取出浮点数的整数部分和小数部分。fmod函数可以返回两个浮点数相除的余数。它们的...
    99+
    2023-06-29
  • c语言浮点数如何取余
    在C语言中,可以使用fmod()函数来取两个浮点数的余数。fmod()函数的原型如下:```cdouble fmod(double ...
    99+
    2023-10-12
    c语言
  • c语言中浮点型怎么表示
    在C语言中,浮点型数据可以通过两种方式进行表示:1. 单精度浮点型(float):使用关键字`float`来声明单精度浮点型变量,占...
    99+
    2023-09-29
    c语言
  • C语言深入探索浮点数的使用秘密
    目录一、内存中的浮点数二、浮点数存储实例三、浮点类型的秘密四、小结一、内存中的浮点数 浮点数在内存的存储方式为:符号位,指数,尾数 类型符号位指数尾数float1位(第31位)8位(...
    99+
    2024-04-02
  • C语言怎么实现两个浮点数相乘
    本篇内容主要讲解“C语言怎么实现两个浮点数相乘”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言怎么实现两个浮点数相乘”吧!输入两个浮点数,计算乘积。实例#include <stdio....
    99+
    2023-06-17
  • C语言中的浮点数据类型
    目录1. 处理带小数的数值2. 浮点类型 3. 浮点类型的sizeof1. 处理带小数的数值 我们来讨论一下类似于1.234567,0.00001,这类非整数的数据。我们先试试看,i...
    99+
    2024-04-02
  • C语言中字符型数据和浮点型数据怎么用
    本篇内容主要讲解“C语言中字符型数据和浮点型数据怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言中字符型数据和浮点型数据怎么用”吧!字符型首先要了解ASII码,这里面有很多东东,但只要...
    99+
    2023-06-26
  • c语言浮点数输出的格式怎么控制
    在C语言中,可以使用printf函数来控制浮点数输出的格式。下面是一些常见的格式控制符:1. %f:输出浮点数,小数点后默认保留6位...
    99+
    2023-05-14
    c语言浮点数 c语言
  • C语言浮点数的二进制表示
    本篇内容介绍了“C语言浮点数的二进制表示”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!浮点数是属于有理数中某特定子集的数的数字表示,在计算机...
    99+
    2023-06-17
  • C语言怎样把浮点数转换为字符串
    本篇文章为大家展示了C语言怎样把浮点数转换为字符串,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。把浮点数转换为字符串1、把float/double格式化输出到字符串标准的C语言提供了atof函数把字...
    99+
    2023-06-25
  • C语言中怎么用浮点数计算三维空间的几何
    在C语言中,可以使用浮点数来表示三维空间中的点、向量、线段等对象,并进行相关的几何运算,如计算两点之间的距离、向量的长度、点与线段的...
    99+
    2024-04-28
    C语言
  • c语言双精度浮点数如何表示
    C语言中的双精度浮点数使用 double 数据类型表示,占用 8 个字节(64 位)。其内部的表示方式遵循 IEEE 754 浮点数...
    99+
    2023-09-29
    c语言
  • C语言浮点函数中的modf和fmod详解
    modf函数可以提取出浮点数的整数部分和小数部分。fmod函数可以返回两个浮点数相除的余数。它们的函数原型如下: double __cdecl modf(double _X,do...
    99+
    2024-04-02
  • c语言浮点数四舍五入的规则是什么
    C语言中浮点数的四舍五入规则如下:1. 如果要舍入的小数部分小于0.5,则舍弃小数部分。2. 如果要舍入的小数部分大于0.5,则将整...
    99+
    2023-08-23
    c语言
  • C语言数据(整数、浮点数)在内存中的存储
    本篇主要讨论:整数、浮点数在内存中是怎么保存的! 数据类型详细介绍 在前面C语言基础概览中,已经提到过了基本的C语言内置类型,但C语言的数据类型有无数种~ 但是可以把这些类型分为几个...
    99+
    2024-04-02
  • C语言如何把浮点数转换为字符串
    目录把浮点数转换为字符串1、把float/double格式化输出到字符串2、注意事项整型、浮点型和字符串间转换1.整型、浮点型——>字符串2.字符串——>整型、浮点型把浮...
    99+
    2024-04-02
  • C语言中字符型数据和浮点型数据介绍
    目录字符型1.来练练,输出一个字符A2.将小写字母转为大写字母浮点型先来看看float代码以下是双精度的浮点型double练习题新的一天又开始了哈,又是好好学习的一天啦。话不多说,直...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作