MCS-51单片机浮点子程序库-IEEE-754_2型实现

需积分: 15 13 下载量 104 浏览量 更新于2024-08-01 收藏 287KB DOC 举报
"华信单片机——51四字节浮点库" 本文档主要介绍了针对MCS-51单片机的浮点数处理子程序库,该库是基于IEEE-754标准的一个变体,被称为IEEE-754_2型。这个浮点库特别适用于那些需要进行浮点运算但硬件不直接支持浮点计算的51系列单片机。华信单片机工作室的卢先生整理并验证了这个库,相关的详细信息可以在其个人网站http://www.hx51.com/上找到。 在51单片机的浮点库中,浮点数是以四字节的形式存储的,这包括一个符号位、一个阶码和一个24位的尾数。这种格式与标准的IEEE-754浮点数格式不同,它采用了1字节移码表示阶码,范围从80H到0FFH,对应于0到127的偏移值,对于负数,阶码用01H到7FH表示。由于尾数只存储了23位,但隐含了最高位为1,因此实际尾数精度为24位。 浮点数的计算涉及到阶码的处理。对于十进制整数和纯小数,阶码eb的计算方法有所不同: 1. 对于十进制整数(可能带有小数部分): 阶码eb = 指数P + 80H 其中,指数P = int(Z) + 1,Z = ln(A) / ln(2) 2. 对于纯小数: 阶码eb = 指数P + 80H 其中,指数P = int(Z),Z = ln(A) / ln(2) 这个库能表示的数据范围是从5.8×10^(-39)到1.7×10^38,如果数值超出这个范围,将发生溢出。 此外,库中还涉及到了阶符和数符的概念,它们分别用于表示阶的正负和数值的正负。阶符用00H表示正,0FFH表示负;数符同样用00H表示正,0FFH表示负。在浮点BCD码中,阶符、数符和阶的定义也有特定的规则,但具体的实现细节可能需要参考《浮点数转换器》这篇文章或《MCS-51/196单片机浮点数程序和实用程序》这本书以获取更详尽的信息。 华信单片机的51四字节浮点库提供了一种在51单片机上实现浮点运算的方法,通过定制的浮点数格式和子程序库,使得单片机能够在有限的内存和处理能力下处理浮点计算任务。这对于需要进行浮点运算的嵌入式应用是非常有价值的。