`

以float为例了解浮点数

 
阅读更多


flaot浮点数二进制表达由三个部分组成:

sign(1bit):表示浮点数是正数还是负数,0表示正数,1表示负数

exponent(8bit):指数部分。类似科学计数法中M*10^N中的N,只不过这里是以2为底数,需要注意的是,这部分是要以2^7-1即127做偏移调整的,即指数实际值等于2^E-127

mantissa(23bits):基数部分。浮点数具体数值的实际表示

 

举个例子:以5.5为例

①5.5用二进制表示为101.1

②将其规格化(Normalize),原理就是保证小数点前只有一个bit。等到如下表达式:1.011*2^2

③填充到各部分

sign:正数所以为0

exponent:需要做偏移调整所以它的值应该是127+2= 129

mantissa:需要特别解释一下,因为规格化后整数部分总是为1,所以将1省去,则mantissa为011

 

最后得到float表示的5.5在计算机中存储的是 0 1000 0001 0110 0000 。。(后面0省略)

 
exponent都为0或都为1时,有非规格数、无穷大、无穷小、NaN等几种情况,不介绍

 

float取值范围和精度

取值范围大致取决于exponent,精度取决于mantissa,2^23等于8388608所以精度为7位能完全保证6位
 

  • 大小: 59.1 KB
  • 大小: 109.2 KB
分享到:
评论

相关推荐

    IEEE754标准 32位16进制转浮点数

    在计算机科学领域,IEEE754标准是用于表示浮点数的一种广泛接受的规范,它定义了浮点数如何在二进制系统中...在C#编程中,可以利用内置的转换函数简化这一过程,但手动转换能帮助我们更直观地了解浮点数的内部结构。

    浮点数与IEEE754的转换

    以单精度浮点数为例: - **符号位**:占用1位。 - **指数位**:占用8位。 - **尾数位**:占用23位。 在IEEE754中,单精度浮点数的总长度为32位,其中最高位为符号位,接下来的8位表示指数位,最后的23位表示尾数位...

    浮点数计算与误差分析

    - **无小数的浮点数转换**:以45678.0f为例,首先将其转换为二进制表示1011001001101110.0,然后调整为1.M的形式,即1.011001001101110*(2^15),最后进行编码。 - **纯小数转换**:例如0.25D,转换为二进制0.01B,...

    浮点数转换为二进制存储V1.2.pdf

    浮点数转换为二进制存储遵循IEEE754标准,该标准定义了计算机中浮点数的存储方式。其中单精度float类型使用32...另外,了解浮点数的存储结构还有助于理解浮点数在计算机中的精度问题,避免由于精度丢失带来的数值错误。

    float double精度的详细解释

    以8.25为例: - **二进制表示**:1000.01 - **科学计数法表示**:1.0001 * 2^3 - **存储方式**: - 符号位:0(正数) - 指数位:3 + 127 = 130 (存储时为10000010) - 尾数位:00010000000000000000000 (省略最...

    浮点数的存储 我的一些心得

    以文件中给出的示例“12.6875f”为例,其二进制形式为1100.1011。根据IEEE 754标准,我们将其转换为浮点数格式: - 首先,将1100.1011规范化为1.1011 * 2^3。 - 然后,根据127的偏移量,指数3的实际存储值为130(即...

    c语言 float double数据类型的内存中的存储和验证

    以 `0.5` 为例,在双精度下存储: - 符号位为0,表示正数; - 指数位表示 `-1` 的值,加上偏移量1023后为 `1022` (二进制形式为 `01111111110`); - 尾数部分为0,这是因为 `0.5` 可以表示为 `1.0 * 2^{-1}`,尾数...

    float变量在内存当中存储格式.doc

    以数值8.25为例,其二进制科学记数法表示为1.00001×2^3。转换为`float`格式的过程如下: 1. **符号位**:由于8.25为正数,符号位设为0。 2. **指数位**:指数3加上偏移量127,得到130(二进制表示为10000010)。 3...

    浮点型如何在内存中进行存储呢?(csdn)————程序.pdf

    在了解浮点数的存储机制前,我们先回顾一下浮点数的基本表示形式,如3.1415926(字面浮点型)和1E10(科学计数法的浮点型)。浮点数家族包含三种主要类型:float、double和long double。它们在内存中占用的字节数...

    浮点型数据格式IEEE754标准的详细解释

    以float型数据为例,其符号位S占1位,阶码E占8位,尾数M占23位。符号位的0表示正数,1表示负数;阶码部分用移码表示,float型的移码值为127,通过这种方式,原本指数的范围从1到254被映射到实际的-126到+127;尾数...

    “球体积和球表面积计算设计”。设计一个对话框,可以输入球的半径,输出球体积和球表面积。

    以Python和Tkinter为例,简单的代码框架可能是这样的: ```python import tkinter as tk from math import pi def calculate(): radius = float(radius_entry.get()) if radius result_label.config(text=...

    VC编程百例—2

    例如,int用于整数计算,float和double用于浮点数,char则用于处理单个字符。 其次,控制结构是程序流程的关键。if条件语句允许我们根据特定条件执行不同代码块,而循环(如for、while和do-while)则用于重复执行某...

    Python astype(np.float)函数使用方法解析

    在本例中,我们关注的是如何使用`astype(np.float)`将数组中的字符串(str)类型数据转换为浮点数(float)类型。 在数据库查询中,有时我们可能会遇到数据类型不匹配的问题。例如,当你从数据库中读取数据并将其...

    《C语言程序设计教程》例题源码归类.pdf

    【例2.6】涉及到实型变量(浮点数),如`float`类型,以及浮点数的加法运算。 【例2.7】展示了字符型变量`char`的使用,包括ASCII码的表示,以及大小写字母间的转换。 【例2.8】解释了变量初始化,两种不同的方式...

    数据库SQL基础教程(以Mysql为例)

    在MySQL中,常见的数据类型包括整数类型(如INT、TINYINT)、浮点数类型(如FLOAT、DOUBLE)、字符串类型(VARCHAR、CHAR)、日期和时间类型(DATE、TIME、DATETIME)以及二进制类型(BLOB、TEXT)。理解每种数据...

    hextosingle.zip_single

    例如,在Python中,可以使用`int(hex_string, 16)`将十六进制字符串转换为整数,然后用`float.fromhex(hex_string)`将这个整数转换为单精度浮点数的十六进制表示,最后再调用`struct.unpack('f', pack('!I', int))`...

    python趣味编程100例.7z

    1. **变量与数据类型**:Python中的变量可以存储不同类型的数据,如整数(int)、浮点数(float)、字符串(str)和布尔值(bool)等。了解这些基本数据类型及其用法是编程的起点。 2. **运算符**:Python支持算术运算符(如...

    定点DSP做浮点运算

    下面我们将详细介绍定点小数的一些理论知识,然后以C语言为例,介绍一下定点小数运算的方法。 首先,我们需要了解整数的相关知识。在TI C5000 DSP系列中使用16比特为最小的储存单位,所以我们就用16比特的整数来...

    C语言基础知识900例

    C语言的核心包括数据类型,如int、char、float和double等,它们分别用于存储整数、字符、浮点数和双精度浮点数。此外,还有void类型,用于定义无返回值的函数。变量是存储数据的地方,声明变量时需要指定其数据类型...

    MySQL常用数据类型.pdf

    关于数据类型的存储长度和精度,以 FLOAT 为例,括号中的数字表示小数点后的位数。例如,FLOAT(10,2)表示该字段可以存储最多10位数字,其中小数点后有2位。 在处理日期和时间类型时,除了可以按照格式化输出显示,...

Global site tag (gtag.js) - Google Analytics