dim byts(0 to 3) as byte dim f as single dim s as string'注意字节顺序 byts(0) = &H3A byts(1) = &H83 byts(2) = &H12 byts(2) = &H6FCopyMemory f, s(0), 4s = Format(f, "0.000")
同意楼上的,用format函数就行了
用2楼的方法换成 s = Format(f, "0.000000000000000000000000000000000000000000000") 得出的结果是0.000000000000000000000000000000000000010240820 这是怎么回事呀?
我以为你的“3A83126F”是正序的 改一下方向就行了 dim byts(0 to 3) as byte dim f as single dim s as string'注意字节顺序 byts(0) = &H6F byts(1) = &H12 byts(2) = &H83 byts(2) = &H3ACopyMemory f, s(0), 4s = Format(f, "0.000")
既然是主机顺序就可以这样写:dim l as long dim f as single dim s as stringl = &H3A83126FCopyMemory f, s(0), 4s = Format(f, "0.000")
改了方向还是不对呀,得出的结果是0.000000000000000000000000000000000000005333072 dim byts(0 to 3) as byte dim f as single dim s as string'注意字节顺序 byts(0) = &H6F byts(1) = &H12 byts(2) = &H83 byts(2) = &H3ACopyMemory f, s(0), 4s = Format(f, "0.000000000000000000000000000000000000000000000") Debug.print s 显示出来的结果是0.000000000000000000000000000000000000005333072
谢谢zyl910(910:分儿,我又来了!) 用你的这个方法的出的结果是对的 既然是主机顺序就可以这样写:dim l as long dim f as single dim s as stringl = &H3A83126FCopyMemory f, s(0), 4s = Format(f, "0.000")谢谢了 马上给分
dim f as single
dim s as string'注意字节顺序
byts(0) = &H3A
byts(1) = &H83
byts(2) = &H12
byts(2) = &H6FCopyMemory f, s(0), 4s = Format(f, "0.000")
s = Format(f, "0.000000000000000000000000000000000000000000000")
得出的结果是0.000000000000000000000000000000000000010240820
这是怎么回事呀?
改一下方向就行了
dim byts(0 to 3) as byte
dim f as single
dim s as string'注意字节顺序
byts(0) = &H6F
byts(1) = &H12
byts(2) = &H83
byts(2) = &H3ACopyMemory f, s(0), 4s = Format(f, "0.000")
但是在vb中,用了2楼的方法得出的值是0.000000000000000000000000000000000000010240820
郁闷呀,到底是哪里出了问题呀????
dim f as single
dim s as stringl = &H3A83126FCopyMemory f, s(0), 4s = Format(f, "0.000")
dim byts(0 to 3) as byte
dim f as single
dim s as string'注意字节顺序
byts(0) = &H6F
byts(1) = &H12
byts(2) = &H83
byts(2) = &H3ACopyMemory f, s(0), 4s = Format(f, "0.000000000000000000000000000000000000000000000")
Debug.print s
显示出来的结果是0.000000000000000000000000000000000000005333072
float value;
CString myv="3A83126F";
sscanf(myv,"%x",&value);//将CString表示的十六进制字符串转换成十六进制数
m_strRXData.Format("%f",value);//以浮点数的形式显示十六进制数从上面的代码中得出m_strRXData的值是0.001
用你的这个方法的出的结果是对的
既然是主机顺序就可以这样写:dim l as long
dim f as single
dim s as stringl = &H3A83126FCopyMemory f, s(0), 4s = Format(f, "0.000")谢谢了
马上给分
byts(1) = &H12
byts(2) = &H83
byts(3) = &H3A
dim f as single
dim s as stringl = &H3A83126FCopyMemory f, l, 4s = Format(f, "0.000")