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

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

3天内不再提示

单片机浮点数运算的源码设计

GReq_mcu168 来源:未知 作者:邓佳佳 2018-03-07 15:19 次阅读

单片机的一个浮点数一般在KeilC51中是以4字节形式存储的,格式严格遵循IEEE-754标准。在单片机二进制数据中,浮点数用两个部分来表示,基C为2,E为阶码,M为尾数,E的保存形式是一个0~255的8位值,指数的实际表示值是保存值减去127,范围在-127~+128的数,尾数是一个24位值,换算7个十进制数,最高位通常是1,符号位表示浮点数的正负。

现在看怎样显示一个浮点数,由于浮点数的尾数是24位,最高可以表达的整数值为16777215,用科学计数法表示时整数部分占据1位,小数部分就可以有6位,我们将浮点数的尾数放在长整形数据longint中保存,阶码可以在int型数据中保存。此处我们用C程序来实现显示一个浮点数的功能。

(1)浮点数显示子函数。

}}

(2)显示十进制尾数和阶的子函数。

在大多数的单片机应用系统中都不能离开数值计算,最基本的数值运算为四则运算,单片机中的数都是以二进制形式表示的,二进制的算法有很多,其中最基本的是定点制和浮点制,以上介绍了浮点数在单片机中的表示方式和汇编子程序,浮点数比定点数加减法要困难,但是克服了定点数表示范围小的问题,总之定点数和浮点数各有各得的特点,读者可以在实际运用中加以优化运用。

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

    关注

    6044

    文章

    44632

    浏览量

    639384

原文标题:51单片机执行指令的过程

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    西门子TIA Portal如何比较两个浮点数相等

    概述: 由于浮点数的定义规则,导致浮点数不能通过二进制精确表示,所以在浮点数计算过程中,会出现两个值一样的浮点数进行比较相等计算时结果并不相等的情况。下面先设计一个实例说明该问题,并给
    的头像 发表于 01-06 10:07 275次阅读
    西门子TIA Portal如何比较两个<b class='flag-5'>浮点数</b>相等

    ADS1282采集到的数据传到PC上应该怎么转为浮点数

    我最近在用ADS1282,采集到的数据传到PC上应该怎么转为浮点数?比如说通过串口调试助手收到一个采样点的数据为 FF FF 9D 17,它的真实浮点数是多少呢?我知道ADC是以补码形式存的,是要将数据倒转为17 9D FF FF,再与上0xFF,再float()吗?还
    发表于 12-13 06:23

    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>字信号处理器技术简介

    分享在arduino 单片机浮点数转换位数不够,精度丢失的解决办法

    arduino中由于硬件限制,浮点数只有2位小数。但经过这个函数处理可以达到7位
    的头像 发表于 08-27 14:34 867次阅读

    请问AURIX TC3xx tricore架构下浮点运算和将浮点数小数点去掉变成整数来计算哪种方式更加节省算力?

    AURIX TC3xx tricore架构下浮点运算和将浮点数小数点去掉变成整数来计算哪种方式更加节省算力? 比如一个浮点数12.89V,如果将其写成12890mV,再参与计算,哪种方
    发表于 08-26 06:54

    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

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

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

    优秀的Verilog/FPGA开源项目-浮点运算器(FPU)介绍

    浮点运算器(英文:floating point unit,简称FPU)是计算机系统的一部分,它是专门用来进行浮点数运算的(CPU中也叫ALU)。
    的头像 发表于 04-26 11:27 3968次阅读
    优秀的Verilog/FPGA开源项目-<b class='flag-5'>浮点</b><b class='flag-5'>运算</b>器(FPU)介绍

    verilog语音实现浮点运算

    Verilog可以通过使用IEEE标准的浮点数表示来实现浮点运算。下面是一个基本的Verilog模块示例,展示了如何进行加法、乘法和除法等常见的浮点
    发表于 03-25 21:49

    一文带你秒懂IEEE 754浮点数

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