kohlrak icon

Untitled

kohlrak | PRO | 07/17/17 08:08:41 PM UTC | 0 ⭐ | 295 👁️ | Never ⏰ | []
C++ |

500 B

|

None

|

0 👍

/

0 👎

#include <stdio.h>
 
template <typename T>
T swap_endian(T u)
{
    static_assert (CHAR_BIT == 8, "CHAR_BIT != 8");
 
    union
    {
        T u;
        unsigned char u8[sizeof(T)];
    } source, dest;
 
    source.u = u;
 
    for (T k = 0; k < sizeof(T); k++)
        dest.u8[k] = source.u8[sizeof(T) - k - 1];
 
    return dest.u;
}
 
int main(){
        int le = 0x00FF3200, be;
        be=swap_endian<int>(le);
        printf("LE: 0x%08x\nBE: 0x%08x\n", le, be);
        return 0;
}

Comments