C++ How to convert a vector of size 4 into a 32 bit float
C++ How to convert a vector<uint8_t> of size 4 into a 32 bit float What is the fastest way to convert a vector of size 4 into a 32 bit float? My failed attempt: static bool vec2float32(std::vector<uint8_t> bytes, float &result) { if(bytes.size() != 4) return false; uint8_t sign = (bytes.at(0) & 0x10000000); //will be 1 or 0 uint8_t exponent = (bytes.at(0) & 0x01111111); uint16_t mantissa = (bytes.at(1) << (2*8)) + (bytes.at(2) << (1*8)) + (bytes.at(3) << (0*8)); result = (2^(exponent - 127)) * mantissa; if(sign == 1) result = result * -1; return true; } memcpy, all major compilers handle it optimally. Btw, you have bugs in the 0xXXX constants. You used binary, but 0x means hexadecimal. – geza Jun 29 at 9:42 ^ is bitwise...
