多语言展示
当前在线:429今日阅读:126今日分享:42

单精度浮点数和十进制怎么转换

一、单精度浮点数符合IEEE754标准,32位,前面第一位是符号位,接下来的8位是指数,最后23位是尾数。编程中了解这些就够了,转换方法如下:二、VB中转换示例:VB浮点数转换程序OptionExplicit'利用函数CopyMemory转换PrivateDeclareSubCopyMemoryLib"kernel32"Alias"RtlMoveMemory"(DestinationAsAny,SourceAsAny,ByValLengthAsLong)DimFAsSingle'十进制数DimA(3)AsByte'16进制浮点数PrivateSubCommand1_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)CopyMemoryF,A(0),4'转换Text2.Text=F'显示结果EndSubPrivateSubCommand2_Click()'转换为浮点数格式F=Val(Text2.Text)'十进制字符转数字CopyMemoryA(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)))EndSub扩展资料:C中转换示例:unionsf{floatf;unsignedchars[4];}a;floatm;unsignedchart[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];
推荐信息