Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- float latitude = 45.12345
- float longitude = 110.12345
- unsigned int packedLatitude = (latitude + 90) * 100000 //25 bits
- unsigned int packedLongitude = (longitude + 180) * 100000 //26 bits
- float unpackedLatitude = packedLatitude / 100000.0f - 90.0f
- float unpackedLongitude = packedLongitude / 100000.0f - 180.0f
- float val = 234.323f;
- uint32_t valB = ((uint32_t*)(&val));
- uint32_t signBit = valB >> 31;
- uint32_t exp = (valB >> 23) & 0xff;
- uint32_t mant = valB & 0x7FF;
- uint32_t smallMant = mant>>2;
- int32_t realExp = ((int32_t)exp) - 128;
- uint32_t smallExp = realExp + 32;
- uint32 reducedData28 = (signBit << 27) | (smallExp << 21) | smallMant;
- uint32_t truncate(float f){
- return f>>4;
- }
- float recover(uint32_t u){
- return u<<4;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement