0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

浮点数基础知识科普

汽车玩家 来源: FPGA开源工作室 作者:lee 2020-03-08 17:26 次阅读

浮点数,是属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示任意某个实数。具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方法类似于基数为10的科学计数法。

1 、浮点数基础知识

浮点数基础知识科普

浮点数由四部分构成:符号位(Sign Bit)、尾数(Mantissa)、基数(Radix)和指数(Exponent)。根据《IEEE Standard 754 for Binary Floating-Point Arithmetic》的定义–二进制标准浮点数,基数为2。s、m、e分别为符号数、尾数和指数,n为相应的浮点数值。

IEEE-754规定了三种浮点数:单精度(float)、双精度(double)和扩展精度。

其中单精度为32bit,其中包含1位符号位S,8位指数位E和23位尾数位M。S、E、M为相应的二进制序列。

浮点数基础知识科普

S:

正数 0.1xxxxxx

负数 1.1xxxxxx

M:

表示小数点之后的二进制尾数。

M为0110表示:二进制.0110

E:

规格化(normalized)

非规格化(denormalized)

2 、规格化浮点数

E表示的二进制不全为0也不全为1时该浮点数为规格化浮点数。

e表示偏置(Biased)

|E|表示E的二进制整数

bias表示偏置

k为指数位宽

对于单精度浮点数来说k为8,所以bias为127。E=“10001000”为例,|E|=136,故e为9。

对于规格化浮点数,标准规定尾数位小数点左侧的隐含位为1,所以:

m = |1.M|

例如M=“10010…0”则1.M=“1.10010…0”所以m=1.5625

浮点数基础知识科普

s=0

m = 1.5625

e =9

n =55.5112

单精度浮点数的公式可表示为:

浮点数基础知识科普

3、非规格化浮点数

E的二进制位全为0时该浮点数为非规格化浮点数。

bias=127

单精度非规格化浮点数公式:

-0.0 符号位为1,其余位为0.

+0.0全部为0.

4、特殊数值

E的二进制位全为1时为特殊数值。

M全0,n无穷大

M全1,S为1,n负无穷大

M全1,S为0,n正无穷大

M不全为0和1,n NaN(Not a Number)

浮点数基础知识科普

5 、双精度浮点数

IEEE-754定义双精度浮点数共64bit 。1位符号位S,11位指数位E和52位尾数位M。同样可以划分为规格化、非规格化和特殊数值。

浮点数基础知识科普

浮点数基础知识科普

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计算机
    +关注

    关注

    19

    文章

    7440

    浏览量

    87786
  • 浮点数
    +关注

    关注

    0

    文章

    60

    浏览量

    15864
收藏 人收藏

    评论

    相关推荐

    TLV320AIC3106音频芯片怎么发送、接收浮点数呢?

    TLV320AIC3106 音频芯片怎么发送、接收浮点数呢?是把浮点数转成整数吗?如果是该怎么转呢? 经AD采样后得到的是整数,又该怎么转换成原始的浮点数呢?
    发表于 11-05 07:13

    labview中浮点数与十六进制字符串相互转化

    与下位机数据交流及通讯时,经常有浮点数与十六进制字符串相互转化的需求,经过两天总结,找到了最简洁的相互转化的方法,萌新欢迎大佬指正,文件也附上。*附件:HEX字符串与浮点数转换.rar
    发表于 10-21 19:51

    TMS320C6745浮点数字信号处理器技术简介

    电子发烧友网站提供《TMS320C6745浮点数字信号处理器技术简介.pdf》资料免费下载
    发表于 10-09 09:34 0次下载
    TMS320C6745<b class='flag-5'>浮点数</b>字信号处理器技术简介

    TMS320C6671定点和浮点数字信号处理器数据表

    电子发烧友网站提供《TMS320C6671定点和浮点数字信号处理器数据表.pdf》资料免费下载
    发表于 08-05 11:17 0次下载
    TMS320C6671定点和<b class='flag-5'>浮点数</b>字信号处理器数据表

    TMS320C6713B浮点数字信号处理器数据表

    电子发烧友网站提供《TMS320C6713B浮点数字信号处理器数据表.pdf》资料免费下载
    发表于 08-05 10:54 0次下载
    TMS320C6713B<b class='flag-5'>浮点数</b>字信号处理器数据表

    TMS320C6711D浮点数字信号处理器数据表

    电子发烧友网站提供《TMS320C6711D浮点数字信号处理器数据表.pdf》资料免费下载
    发表于 08-03 09:29 0次下载
    TMS320C6711D<b class='flag-5'>浮点数</b>字信号处理器数据表

    官方例程modbus slave rtu,浮点数精度不对是怎么回事?

    官方例程 modbus slave rtu, 浮点数精度不对,对保持寄存器设置一个浮点数,读取到的浮点数结果精度只能到小数点后两位,根本无法使用,用的是idf 5.1.2版本,开发环境是vscode。
    发表于 07-19 08:10

    请问如何打印浮点数或双精度变量?

    如何打印浮点数或双精度变量?
    发表于 07-12 08:24

    ESP8266_RTOS_SDK如何打印浮点数

    尝试使用 printf 打印浮点数,例如, 浮点数 d = 1.0; printf("d = %f", d); 但它打印出来: d = 此外,sprintf
    发表于 07-09 06:56

    如何关闭ESP32-S3中的FPU浮点数计算单元?

    如何关闭ESP32-S3中的FPU浮点数计算单元。如题,之前的项目在esp32s2 上面运行良好,但是移植到esp32s3上后由于fpu造成浮点数计算无法在中断中使用,并且也不能跨cpu去使用,对固件性能和稳定性造成了很大的影响。现在想寻求一种办法,禁用掉fpu
    发表于 06-27 07:32

    STM32CubeIDE printf浮点数浮点数丢失数值的原因?

    1、芯片:STM32F103C8T62、环境:STM32CubeIDE3、问题:printf浮点数浮点数数值丢失如 float A=25.6666;float B=24.7777;实际打印
    发表于 06-03 07:07

    一文带你秒懂IEEE 754浮点数

    一、简介1、常见的浮点数表示方式是IEEE754标准,它规定了浮点数的存储格式和运算规则,这个标准定义了两种浮点数表示:单精度和双精度。2、任何一个浮点数的二进制数可以写为:NUM=(
    的头像 发表于 03-18 08:09 8441次阅读
    一文带你秒懂IEEE 754<b class='flag-5'>浮点数</b>

    modbus浮点数怎么读取

    Modbus是一种通信协议,常用于工业自动化系统中的设备之间的通信。它支持多种数据类型,包括整数、浮点数、字符串等。浮点数在工业领域中广泛应用,因此了解如何读取和处理Modbus浮点数是非
    的头像 发表于 12-28 14:38 5954次阅读

    单精度和双精度浮点数的区别

    单精度和双精度是计算机中表示浮点数的两种不同的精度。在计算机中,浮点数用来表示带有小数部分的实数,而单精度和双精度用来表示浮点数的精确程度不同。在以下文章中,我将详细介绍单精度和双精度浮点数
    的头像 发表于 12-15 10:25 5311次阅读

    单精度和双精度浮点数的区别

    在计算机科学和数值计算中,浮点数是一种用于表示实数的数据类型。浮点数有两种精度级别:单精度和双精度。这两种精度级别在表示范围、精度和存储空间等方面都有所不同。本文将详细介绍单精度和双精度浮点数的区别
    的头像 发表于 12-13 10:55 1.1w次阅读