1、先给出实型变量取值范围

实型变量可以分为单精度(float)(4字节)、双精度(double)(8字节)、长双精度(long double)(8字节)三种类型。

在 VC6.0 double和long double型具有完全相同的长度和存储格式,它们是等同的,但其它编译器可能不同。

下面给出实型变量取值范围:

2、实型变量在C语言内存中的存放形式

首先在讨论这个问题之前,先给出实型变量在C语言内存中的存放形式:

在存储实型数据时,无论表示是小数还是指数,均以指数格式存储,即实数的存储由符号位、指数、以及尾数等三部分组成。

下面我就将标准值是怎么定义的,和你说一下:

这个比较复杂,建议你找一下IEEE754标准看一下。


其中,s 表示 sign,即符号。如果 s == 0,则浮点数 V 为正;如果 s == 1,则浮点数 V 为负。

M 表示有效数字,在 [1, 2) 之间。

而 E 则是指数位。

故float存储的数字可以写成:

(1)Sign(1位):用来表示浮点数是正数还是负数,0表示正数,1表示负数。

(2)Exponent(8位):指数部分。即上文提到数字c,但是这里不是直接存储c,为了同时表示正负指数以及他们的大小顺序,这里实际存储的是c+127。

(3)Mantissa(23位):尾数部分。也就是上文中提到的数字b。


举个例子:计算float 13.14在C语言内存中存储情况

(1)首先整数用二进制表示为1101

(2)0.14用二进制表示为:

0.14x2=0.28      整数部分  0

0.28x2=0.56      整数部分  0

0.56x2=1.12      整数部分  1

0.12x2=0.24      整数部分  0

0.24x2=0.48      整数部分  0

0.48x2=0.96      整数部分  0

0.96x2=1.92      整数部分  1

0.92x2=1.84      整数部分  1

0.84x2=1.68      整数部分  1

这怎么还不出来结果呢,无奈。。。。。。(由于涉及后面循环了,所以临时更改一个例子,机智)

emmmmm,对的,这个例子不算了,下面来看下一个例子:

举个例子:计算float 2.5在C语言内存中存储情况

(1)整数部分可以写成二进制:0010

(2)小数部分0.5可以写成二进制如下:0.1

0.5x2=1     整数部分 1

(3)故2.5用二进制表示为10.1,然后可以写成类似于科学计数法:1.01x2^1

(4)根据上面的结论可以得出指数部分为:c=1+127=128   二进制表示为:10000000

(5)尾数部分为01填入即可

最后得出float 2.5在C语言内存中存储的形式为:

0 10000000 01000000000000000000000

下面验证这个结果是否等于2.5?

https://www.h-schmidt.net/FloatConverter/IEEE754.html

3、下面开始讨论float取值范围

前面知float存储的数字可以写成 ;当b和c最大时候就是float的取值范围。

首先来看c,指数位数为11111111最大,因为这个数有特殊用途,所以要减去1得11111110

接下来看b,可知当b全为1时,11111111111111111111111

此时为最大取值范围。

故可以得出最后结果float取值范围为:

解说float取值范围计算过程相关推荐

  1. 【C语言】解说float取值范围计算过程

    微信公众号: 1.先给出实型变量取值范围 实型变量可以分为单精度(float)(4字节).双精度(double)(8字节).长双精度(long double)(8字节)三种类型. 在 VC6.0 do ...

  2. 18、CSS基础——属性值的计算过程

    属性值的计算过程 1. 页面渲染 浏览器的页面渲染方式: 一个元素一个元素依次渲染,顺序按照页面的树形目录结构进行 即页面按照这种树形目录结构自根发散对元素依次进行渲染,元素一定是上一个渲染完后才渲染 ...

  3. CSS基础(6)- 属性值的计算过程

    本系列笔记是基于[渡一教育]袁进老师的html+css基础课程而记录,仅作为个人记录以及阅读使用. 文章目录 属性值的计算过程 参考资料 属性值的计算过程 一个元素一个元素依次渲染,顺序则是按照页面文 ...

  4. 兰彻斯特方程用计算机实现,兰彻斯特方程的参数取值与计算.pdf

    总第 206期 舰 船 电子 工 程 VO1.31No.8 ShipElectronicEngineering 49 Z011年第 8期 兰彻斯特方程的参数取值与计算 乔林峰" 胡浩然 ' ...

  5. Python:高级主题之(属性取值和赋值过程、属性描述符、装饰器)

    属性取值和赋值过程 一切皆是对象,类型也是对象. 对象包含一个__class__属性指向其所属类型. 对象包含一个__dict__属性指向其所包含的成员(属性和方法). 取值过程(下面是伪代码) 1 ...

  6. 关于sinX与y的大小比较取值范围计算

    关于sinX与y的大小比较取值范围计算 @(概率论) 在求分布函数的时候,常常有已知XX的分布函数求Y=g(X)Y=g(X)的分布函数类型.往往不小心就会计算出错误的范围,从而导致分布函数求错. 比如 ...

  7. js Date 类型 的取值、计算、格式化 与 moment.js

    js Date 类型 的取值.计算.格式化 与 moment.js 前言 笔者工作多年,作为一个爱思考的程序员,一直在想一个问题:究竟怎样才可以让自己变的更强.. 对不起各位,说的太中二了,让我们重新 ...

  8. 【详细解说】单精度浮点数float取值范围

    结论 先说结论, float能表示范围为:± 3.4e38 最大正数PosMax  3.402e38 最小正数PosMin  1.175e-38 最大负数NegMax  -1.175-38 最小负数N ...

  9. c 语言char取值范围,signed char类型取值范围计算

    在C语言程序中,给定一个类型,如何计算这个类型变量的取值范围呢?比如有一个字符型变量定义如下: signed char c: 这个字符变量c的取值范围是[-128,127],是计算出来的呢? 假设字符 ...

最新文章

  1. 双绞线是计算机网络的一种通信线路吗,计算机网络环境的信道传输技术分析
  2. 作为一个新人,怎样学习嵌入式Linux?
  3. smoteenn算法_类别不平衡问题之SMOTE算法(Python imblearn极简实现)
  4. 确定浏览器是否支持某些DOM模块
  5. 组件通信 $ref
  6. element-ui table表格内容相同自动合并
  7. 【CodeForces - 1027B 】Numbers on the Chessboard (没有营养的找规律题,无聊题)
  8. yum报[Errno 256] No more mirrors to try
  9. liunx 下mysql 的安装(转载)
  10. 17. Store newed objects in smart pointers in standalone statements
  11. 数据库服务器系统崩溃,mssql数据库系统崩溃后的一般处理步骤与方法
  12. 蓝桥杯官网题库【简单题解析】持续更新
  13. win10千万不要重置_小白不要再用“一键重装系统”了,后果很严重!
  14. We Will Rock You
  15. 基于SBO的委外加工条码解决方案
  16. 【新手入门】自己动手搭建云服务器
  17. 离散数学:判断任意一个关系是否为函数,若是函数,判定其是否为单射、满射或双射
  18. dango One2Many example
  19. LQ0139 油漆面积【枚举】
  20. Selenium——文件另存为

热门文章

  1. mapreduce 编程模型
  2. linux mate主题目录,Linux Mint 19.1新功能介绍,包含Cinnamon、Xfce、MATE桌面
  3. nacos实现Java和.NetCore的服务注册和调用
  4. 全面屏手机的适配方案
  5. Windows10安装tomcat【配置环境变量】
  6. python读html导出excel,python数据导出到excel
  7. auditd日志分析方法
  8. Jquery LigerUI-表格的使用
  9. 项目如期完成是有多难?
  10. (九)图片动漫风格变换、图片卡通风格变换、批量处理、图片转动漫风格、图片转卡通风格、视频转动漫风格、视频转卡通风格