单片机的一个浮点数一般在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如何比较两个浮点数相等
![西门子TIA Portal如何比较两个<b class='flag-5'>浮点数</b>相等](https://file1.elecfans.com/web3/M00/04/E9/wKgZPGd7O9eAMSnKAAATzidxstc670.jpg)
ADS1282采集到的数据传到PC上应该怎么转为浮点数?
TLV320AIC3106音频芯片怎么发送、接收浮点数呢?
labview中浮点数与十六进制字符串相互转化
请问AURIX TC3xx tricore架构下浮点运算和将浮点数小数点去掉变成整数来计算哪种方式更加节省算力?
官方例程modbus slave rtu,浮点数精度不对是怎么回事?
ESP8266_RTOS_SDK如何打印浮点数?
STM32CubeIDE printf浮点数,浮点数丢失数值的原因?
优秀的Verilog/FPGA开源项目-浮点运算器(FPU)介绍
![优秀的Verilog/FPGA开源项目-<b class='flag-5'>浮点</b><b class='flag-5'>运算</b>器(FPU)介绍](https://file1.elecfans.com/web2/M00/DA/FB/wKgZomYrH4yASZLlAAAfzlUnCNg147.png)
评论