How to convert a 16-bit number between big-endian and little-endian values in C++

2 Answers

0 votes
#include <iostream>
#include <bitset>

int main(void)
{
    // 16 bit 

    // unsigned short _byteswap_ushort(unsigned short value); // VS

    unsigned short n = 61696;

    std::cout << std::bitset<16>(n) << "\n";

    n = _byteswap_ushort(n);

    std::cout << std::bitset<16>(n) << "\n";
}


/*

1111000100000000
0000000011110001

*/

 



answered Jan 2, 2025 by avibootz
edited Jan 3, 2025 by avibootz
0 votes
#include <iostream>
#include <bitset>

int main(void)
{
    // 16 bit 
    
    unsigned short n = 4660; 

    std::cout << std::bitset<16>(n) << "\n";

    n = (n << 8) | (n >> 8);

    std::cout << std::bitset<16>(n) << "\n";
}


/*

0001001000110100
0011010000010010

*/

 



answered Jan 2, 2025 by avibootz
edited Jan 3, 2025 by avibootz
...