资料介绍
在单片机的BCD增量算式、线性化处理等过程中,都会遇到一个共同的问题,那就是小数的运算。在单片机当中,对于小数的表现方法一般只有两种,一种是浮点数,一种是定点数。本文就将对单片机中的浮点数进行概述并对其汇编程序设计进行介绍。
浮点数结构有其自身的优点,其能够以固定的字节长度保持相对精度不变,用较少的字节表示很大的数的范围,便于存储和运算,在处理的数据范围较大和要求精度较高时,采用浮点数。
浮点数概念
常用科学计数法来表示一个十进制数如:
l234.75=1.23475E3=1.23475×103(10的3次方)
在数据很大或很小时,采用科学计数法避免了在有效数字前加0来确定小数点的位置,突出了数据的有效数字的位数,简化了数据的表示,可以认为科学计数法就是十进制数的浮点数表示方法。
在二进制中,也可以用类似的方法来表示一个数,如:
1234.75=10011010010.11(二进制)=0.1001101001011×211(2的11次方)
一般表达式为:
N=S×2p
在这种表示方法中,数值由4个部分组成,即尾数S及符号,阶码P及符号。
在二进制中,通过定义相应字节或位来表示这4部分,就形成了二进制浮点数。二进制浮点数可以有多种不同的表示方法,下面是一种常见的三字节浮点数的格式:
其中尾数占16位,阶码占6位,阶符占1位,数符占1位。阶码通常用补码来表示。
在这种表示方法中,小数点的实际位置要由阶码来确定,而阶码又是可变的,因此称为浮点数。
1234.75用这种格式的浮点数表示就是:
000010111001101001011000
用十六进制表示为:
1234.75=0B9A58H
-1234.75=4B9A58H
0.171875=043B00H
-0.171875=443B00H
三字节浮点数所能表示的最大值为:
1×263=9.22×1018
能表示的最小数的绝对值为:
0.5×2-63=5.42×10-20
其所表示的数的绝对值范围=(5.42×10-20~9.22×1018),由此可以看到,比三字节定点数表示的数的范围大得多。
按同样方法可以定义一个4字节的浮点数,以满足更高精度的需要。
规格化浮点数
同一个数用浮点数表示可以是不同的,如:
1234.75=0B9A58H=0C4D2CH=0D2696H
虽然这几种表示其数值是相同的,但其尾数的有效数字的位数不同,分别为16位、15位和14位。在运算过程中,为了最大限度地保持运算精度,应尽量增加尾数的有效位数,这就需要对浮点数进行规格化处理。
在只考虑用二进制原码表示尾数时,尾数的最高位为l,则该浮点数为规格化浮点数。在规格化浮点数中,用尾数为0和最小阶码表示0,三字节规格化浮点数的0表示为410000H。
浮点数在运算之前和运算之后都要进行规格化,规格化过程包括以下步骤:
首先判断尾数是否为0,如果为0,规格化结果为410000H;(如果尾数不为0,判断层数的最高位是否为1,如果不为1,尾数左移,阶码减1。)
再判断层数的最高位是否为1,如果不为1,继续进行规格化操作,如果为1,则规格化结束。
通过以上的文章可以看到,浮点数结构有着较为明显的应用场景。在需要处理的数据范围较大或者对于数据的请求范围较高时,适合使用单片机浮点数来进行运算,浮点数能够利用自身固定的字节长度来保持相对精度。设计者可根据自己不同的需要来进行选择,希望大家在阅读过本文之后能够有所收获。
文章来源:网络(版权归原著作者所有)
(mbbeetchina)
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- 单精度浮点数和十六进制相互转换例程(基于LV) 22次下载
- C浮点数与字符转换工具 0次下载
- 定点数和浮点数在STM32单片机中使用傅里叶(FFT)变换的理解
- stm32F4单片机计算浮点数的时候偶发性出错的解决方法
- MCU进行双精度与单精度浮点数运算的误差比较测试
- 单片机显示浮点数
- 浮点数十六进制转换器应用程序软件免费下载 7次下载
- 单片机中的16进制如何与浮点数进行互换
- STC15单片机和ST7565P液晶显示屏显示浮点数数据的程序免费下载
- 单片机中的浮点数转换成串口可打印格式的程序免费下载
- TMS320C6654定点和浮点数字信号处理器详细资料概述 9次下载
- 上位机接收下位机发送浮点数 20次下载
- 单片机浮点数的快速除法 93次下载
- 基于FPGA 的单精度浮点数乘法器设计
- 浮点数在单片机数据采集监控系统中的应用
- 一文带你秒懂IEEE 754浮点数 5928次阅读
- modbus浮点数怎么读取 4653次阅读
- 缝缝补补的浮点数进制转换器 1155次阅读
- 西门子PLC读取的仪表数据(浮点数)如何转换为整数 4688次阅读
- PLC中浮点数的二进制表示 4647次阅读
- 什么是浮点数 4223次阅读
- 如何在FPGA中正确处理浮点数运算 4793次阅读
- 单片机浮点数的运算原理及表达方式 1.2w次阅读
- MSC-51单片机的3字节和4字节浮点数计算程序分析 4160次阅读
- Xilinx怎么定点数转浮点数 3825次阅读
- 你不得不知道的嵌入式C的高级用法 4128次阅读
- STM32如何通过 printf 打印出浮点数 1.9w次阅读
- modbus 如何读取浮点数 1.4w次阅读
- 什么是单精度和双精度_单精度和双精度浮点数表示方法 9.9w次阅读
- ARM下浮点数Middle-Endian问题的处理 1530次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21548次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183278次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多