Guest User

Untitled

a guest
Aug 19th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.62 KB | None | 0 0
  1. Bitwise unpacking using signed data
  2. char c1 = -119;
  3. char c2 = 26;
  4.  
  5. // pack
  6. int packed = (unsigned char)c1 | (c2 << 8);
  7. // unpack
  8. c1 = packed >> 0;
  9. c2 = packed >> 8;
  10.  
  11. // printf(c1, c2) -> Unpacked data: -119 | 26
  12.  
  13. char c0 = -42;
  14. char c1 = -119;
  15. char c2 = 26;
  16.  
  17. // pack
  18. int packed = (unsigned char)c0 | (unsigned char)(c1 << 8) | (c2 << 16);
  19. // unpack
  20. c0 = packed >> 0;
  21. c1 = packed >> 8;
  22. c2 = packed >> 16;
  23.  
  24. // printf -> Unpacked data: -42 | 0 | 26
  25.  
  26. int packed = (unsigned char)c0 | ((unsigned char)c1 << 8) | (c2 << 16);
  27.  
  28. (unsigned char)(c1 << 8)
  29.  
  30. int32_t packed = ((uint8_t)c0) | (((uint8_t)c1)<<8) | (((uint8_t)c2) << 16);
Add Comment
Please, Sign In to add comment