swap.c 1021 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #include "swap.h"
  2. //
  3. uint16_t swap_uint16(uint16_t val)
  4. {
  5. return (val << 8) | (val >> 8 );
  6. }
  7. //
  8. int16_t swap_int16(int16_t val)
  9. {
  10. return (val << 8) | ((val >> 8) & 0xFF);
  11. }
  12. //
  13. uint32_t swap_uint32(uint32_t val)
  14. {
  15. val = ((val << 8) & 0xFF00FF00 ) | ((val >> 8) & 0xFF00FF );
  16. return (val << 16) | (val >> 16);
  17. }
  18. //
  19. int32_t swap_int32(int32_t val)
  20. {
  21. val = ((val << 8) & 0xFF00FF00) | ((val >> 8) & 0xFF00FF );
  22. return (val << 16) | ((val >> 16) & 0xFFFF);
  23. }
  24. //
  25. int64_t swap_int64(int64_t val)
  26. {
  27. val = ((val << 8) & 0xFF00FF00FF00FF00ULL ) | ((val >> 8) & 0x00FF00FF00FF00FFULL );
  28. val = ((val << 16) & 0xFFFF0000FFFF0000ULL ) | ((val >> 16) & 0x0000FFFF0000FFFFULL );
  29. return (val << 32) | ((val >> 32) & 0xFFFFFFFFULL);
  30. }
  31. uint64_t swap_uint64(uint64_t val)
  32. {
  33. val = ((val << 8) & 0xFF00FF00FF00FF00ULL ) | ((val >> 8) & 0x00FF00FF00FF00FFULL );
  34. val = ((val << 16) & 0xFFFF0000FFFF0000ULL ) | ((val >> 16) & 0x0000FFFF0000FFFFULL );
  35. return (val << 32) | (val >> 32);
  36. }