单片机的一个浮点数一般在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)显示十进制尾数和阶的子函数。


在大多数的单片机应用系统中都不能离开数值计算,最基本的数值运算为四则运算,单片机中的数都是以二进制形式表示的,二进制的算法有很多,其中最基本的是定点制和浮点制,以上介绍了浮点数在单片机中的表示方式和汇编子程序,浮点数比定点数加减法要困难,但是克服了定点数表示范围小的问题,总之定点数和浮点数各有各得的特点,读者可以在实际运用中加以优化运用。
-
单片机
+关注
关注
6074文章
45335浏览量
663293
原文标题:51单片机执行指令的过程
文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
使用VScode的PIO开发GD32VF103,但是串口无法打印浮点数怎么解决?
E203添加浮点数方法:译码和派遣模块设计
E203添加浮点数方法:FPU控制逻辑
蜂鸟E203扩展浮点指令设计(1)
(九)浮点乘法指令设计
浮点运算单元的设计和优化
risc-v中浮点运算单元的使用及其设计考虑
大彩讲堂:VisualHMI-LUA教程-获取设置单精度浮点数函数的应用
PRINTF函数无法打印出浮点数内容是为什么?
设计了一个基于浮点数运算的协处理器,使用C语言编程时没法输入float型数据,请问有哪些部分需要修改?
labview数据类型与PLC 数据类型之间的转换(来自于写入浮点数到汇川 PLC中的数据转换关键的修改)
西门子TIA Portal如何比较两个浮点数相等

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