дважды в гекс. Как это сделано? - PullRequest
1 голос
/ 26 марта 2010

157,453796 = hex 18068A

157,455093 = шестнадцатеричный 180697

71,5037 = hex E91D00

71, 506104 = шестнадцатеричный E93500

71,507103 = шестнадцатеричный E93F00

0 = гекс 000000

Я точно знаю, что это не IEEE 754

Ответы [ 2 ]

2 голосов
/ 26 марта 2010

Вот учебник о том, как конвертировать из базы 10 в гекс. http://mathforum.org/library/drmath/view/55783.html

0 голосов
/ 26 марта 2010

Следующее зависит от порядка байтов архитектуры вашего процессора и поэтому не может быть прочитано в каждой системе:

double f = 10020.2093;
char acz[sizeof(double)+1] = '\0';
std::copy((char*)(&f), ((char*)&f)+sizeof(double), acz);
...