Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как преобразовать 6байт(Float) в 8байт(Double) или в 4байта(single) / 2 сообщений из 2, страница 1 из 1
19.09.2007, 13:28
    #34811091
Focus_NEW
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать 6байт(Float) в 8байт(Double) или в 4байта(single)
Ситуация такая. Получаем с устройства массив байт втом числе и одинарное с плавующей точкой в виде 6 байт (как в паскале или делфи).
Вопрос как преобразовать эти 6 байт в переменную типа Double или Single чтобы потом с ней работать в VB6
...
Рейтинг: 0 / 0
20.09.2007, 07:32
    #34813085
Focus_NEW
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать 6байт(Float) в 8байт(Double) или в 4байта(single)
Нашел в гугле.
Вот пример кому интересно.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
Public Function RealToDouble(ByVal Data As String) As Double
Dim dMantissa As Double
Dim i As Integer
Dim j As Long
Dim k As Long
Dim t As Integer
If Len(Data) <>  6  Then
'Err.Raise
'exception
Exit Function
End If

'accumulate the mantissa
dMantissa =  1 
For i =  6  To  2  Step - 1 
    If i =  6  Then
        t =  6 
    Else
        t =  7 
    End If
    For j = CLng(t) To  0  Step - 1 
        k = k +  1 
        If (Asc(Mid$(Data, i,  1 )) And CLng( 2  ^ j)) <>  0  Then
        dMantissa = dMantissa +  2  ^ -k
        End If
    Next j
Next i

'finally, assemble all the pieces into a number
If (Asc(Mid$(Data,  6 ,  1 )) And &H80) = &H80 Then
    RealToDouble = -dMantissa *  2  ^ (Asc(Mid$(Data,  1 ,  1 )) -  129 )
Else
    RealToDouble = dMantissa *  2  ^ (Asc(Mid$(Data,  1 ,  1 )) -  129 )
End If

'Thanks for your help
'David
End Function
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как преобразовать 6байт(Float) в 8байт(Double) или в 4байта(single) / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]