Я прочитал из сокета некоторые шестнадцатеричные данные. Спецификация этого протокола говорит мне, что следующие 8 байтов представляют двойное значение.Преобразование 8 байтов в двойное значение
Так что я, например, 8 байт, как:
0x3F 0xD1 0x9B 0x94 0xC0 0x00 0x00 0x00
(Это значение сохраняется в массив символов, так Array[0] = 0x3F
, `Array [1] = 0xD1è ...)
представляемого двойной значение: 0.275120913982
Как я могу преобразовать эти 8 байтов в это двойное значение?
Я пробовал много разных вещей, но ничего не работает. Поэтому я понятия не имею, как я могу манипулировать им до двойника.
Вы проверили, нужно ли выполнять преобразование большого конца в малочисленное? – user1978011
* «Я пробовал много разных вещей, но ничего не работает. Поэтому я понятия не имею, как я могу манипулировать им до двойника». * - это отчасти ожидается, что вы покажете нам, что вы пробовали и на самом деле объясните, что произошло и как это не сработало, и что вы не понимаете в чем причина. Во всяком случае, это легко: 'double d; memcpy (& d, & a [0], sizeof d); ' –