Convert Little Endian to Big Endian

前端 未结 13 1830
慢半拍i
慢半拍i 2020-11-27 16:34

I just want to ask if my method is correct to convert from little endian to big endian, just to make sure if I understand the difference.

I have a number which is st

13条回答
  •  [愿得一人]
    2020-11-27 16:43

    Below program produce the result as needed:

    #include 
     
    unsigned int Little_To_Big_Endian(unsigned int num);
     
    int main( )
    {
        int num = 0x11223344 ;
        
        printf("\n Little_Endian = 0x%X\n",num);
        
        printf("\n Big_Endian    = 0x%X\n",Little_To_Big_Endian(num));
     
    }
     
    unsigned int Little_To_Big_Endian(unsigned int num)
    {
        return (((num >> 24) & 0x000000ff) | ((num >> 8) & 0x0000ff00) | ((num << 8) & 0x00ff0000) | ((num << 24) & 0xff000000));
    }
    

    And also below function can be used:

        unsigned int Little_To_Big_Endian(unsigned int num)
        {
            return (((num & 0x000000ff) << 24) | ((num & 0x0000ff00) << 8 ) | ((num & 0x00ff0000) >> 8) | ((num & 0xff000000) >> 24 ));
        }
    

提交回复
热议问题