js 单精度浮点数转10进制_单精度浮点数转十进制办法

这篇博客介绍了单精度浮点数如何按照IEEE754标准转换为10进制的方法,提供了VB和C语言的转换示例代码,包括从16进制字符到浮点数以及从浮点数到16进制字符的转换过程。
摘要由CSDN通过智能技术生成

单精度浮点数转十进制办法

一、单精度浮点数契合IEEE754规范,32位,前面榜首位是符号位,接下来的8位是指数,终究23位是尾数。编程中了解这些就够了,改换办法如下:

二、VB中改换示例:

'VB浮点数改换程序

Option Explicit '运用函数CopyMemory改换

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

Dim F As Single '十进制数

Dim A(3) As Byte '16进制浮点数

Private Sub Command1_Click() '改换为十进制数

A(0) = CLng("&H" & Text1(3).Text) '16进制字符转数字

A(1) = CLng("&H" & Text1(2).Text)

A(2) = CLng("&H" & Text1(1).Text)

A(3) = CLng("&H" & Text1(0).Text)

CopyMemory F, A(0), 4 '改换

Text2.Text = F '闪现作用

End Sub

Private Sub Command2_Click() '改换为浮点数格局

F = Val(Text2.Text) '十进制字符转数字

CopyMemory A(0), F, 4 '改换

Text1(0).Text = IIf(A(3) > 15, Hex(A(3)), "0" & Hex(A(3))) '闪现作用

Text1(1).Text = IIf(A(2) > 15, Hex(A(2)), "0" & Hex(A(2)))

Text1(2).Text = IIf(A(1) > 15, Hex(A(1)), "0" & Hex(A(1)))

Text1(3).Text = IIf(A(0) > 15, Hex(A(0)), "0" & Hex(A(0)))

End Sub

三、C中改换示例:

union sf

{

float f;

unsigned char s[4];

}a;

float m;

unsigned char t[4]

//改换为十进制数

a.s[0]=0x51; //低位在前

a.s[1]=0x06;

a.s[2]=0x9E;

a.s[3]=0x3F;

m=a.f;

//改换为浮点数格局

a.f=m;

t[0]=a.s[0];

t[1]=a.s[1];

t[2]=a.s[2];

t[3]=a.s[3];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值