#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; да, работает как чемпион. Также намного быстрее, отбросил все мои собственные преобразования.