endian swapping

C

Public Domain

Download (right click, save as, rename as appropriate)

Embed

Tags:

endian
1
2
3
4
5
6
7
8
9
#define UTL_endian_swap(_val32)                              \
            (uint32_t)((((_val32) << (3 * 8)) & 0xFF000000) |  \
                       (((_val32) << (1 * 8)) & 0x00FF0000) |  \
                       (((_val32) >> (1 * 8)) & 0x0000FF00) |  \
                       (((_val32) >> (3 * 8)) & 0x000000FF))

#define UTL_endian_swap_16(_val16)                           \
            (uint16_t)((((_val16) << (1 * 8)) & 0xFF00) |      \
                       (((_val16) >> (1 * 8)) & 0x00FF))