我正在位移一个符号整数第一个字节是指数接下来的 4 是尾数。这似乎并不总是有效,我相信这是因为将其称为字符,但是当我将其设为有符号或无符号字符时,它仍然不是 100%。有任何想法吗?
char mdentrypxexp[1];
memcpy( mdentrypxexp, message + pos, 1 );
int32_t MDEntryPxExp = mdentrypxexp[0];
std::cout << "MDEntryPxExp " << MDEntryPxExp << std::endl;
pos+=1;
char mdentrypxmantissa[4];
memcpy( mdentrypxmantissa, message + pos, 4 );
int32_t MDEntryPxMantissa = mdentrypxmantissa[0] | ( (int32_t)mdentrypxmantissa[1] << 8 ) | (int32_t)mdentrypxmantissa[2] << 16 ) | ( (int32_t)mdentrypxmantissa[3] << 24 );
std::cout << "MDEntryPxMantissa " << MDEntryPxMantissa << std::endl;
pos+=4;
double MDEntryPx = MDEntryPxMantissa * pow10(MDEntryPxExp);
std::cout << " MDEntryPx=" << MDEntryPx;