Преобразовать 8 байт в Double in VB.net

#vb.net #double

#vb.net #двойное

Вопрос:

Я читаю древний файл данных, который в основном представляет собой хранилище сглаженных объектов с флагами типов — например, 1 = Int16, 2 = Int32. Например, чтобы прочитать Int32, я прочитал 4 байта из потока, а затем сделал это:

 If B.Length >= 2   Offset Then
    Ans = Convert.ToUInt16(B(1   Offset) * 256   B(0   Offset))
End If
  

Теперь я в некоторой растерянности, как сделать 3 = Double. Я полагаю, что это 8-байтовые значения, IEEE. Существует Convert.ToDouble(byte) , но это не одно и то же, которое просто возвращает Double, содержащий значение от 0 до 255. Аналогично, Convert.ToDouble(Int64) в основном просто преобразует значение в Double.

Так в чем же тут хитрость? Я нашел потоки для этого в VB6 и C, но не VB.net .

Комментарии:

1. Это то, что вы ищете: BitConverter.ToDouble(byte_array) ?

2. Вы также можете рассмотреть BinaryReader .

3. @Plutonix; да, работает как чемпион. Также намного быстрее, отбросил все мои собственные преобразования.