大小端模式及转换

#include 
#include 
#include 
using namespace std;

typedef unsigned int uint_32;
uint_32 bswap_32(uint_32 x)
{
    return (((uint_32)(x) & 0xff000000) >> 24) |  (((uint_32)(x) & 0x00ff0000) >> 8) | \
        (((uint_32)(x) & 0x0000ff00) << 8) | (((uint_32)(x) & 0x000000ff) << 24);
}

int main()
{
    union Test
    {
        int num;
        char str[4];
    }T;
    
    //大端模式:低内存存放高字节,高内存存放低字节——更符合人们的思维
    //小端模式:低内存存放低字节,高内存存放高字节
    //0x12 高字节
    //0x78 低字节
    T.num = 0x12345678;
    printf("%0x \n%0x \n%0x \n%0x \n", T.str[0], T.str[1], T.str[2], T.str[3]);
    cout << "***************************************" << endl;

    int a = bswap_32(T.num);
    T.num = a;
    printf("%0x \n%0x \n%0x \n%0x \n", T.str[0], T.str[1], T.str[2], T.str[3]);
    system("pause");
    return 0;
}

 

转载于:https://www.cnblogs.com/tianzeng/p/11200731.html

你可能感兴趣的:(大小端模式及转换)