【.NET】大小端互转,反转字节序

代码已测试

public static long Reverse(long value)
{
    return (((long)Reverse((int)value) & 0xFFFFFFFF) << 32)
            | ((long)Reverse((int)(value >> 32)) & 0xFFFFFFFF);
}

public static ulong Reverse(ulong value)
{
    return (((ulong)Reverse((uint)value) & 0xFFFFFFFF) << 32)
            | ((ulong)Reverse((uint)(value >> 32)) & 0xFFFFFFFF);
}

public static int Reverse(int value)
{
    return (((int)Reverse((short)value) & 0xFFFF) << 16)
            | ((int)Reverse((short)(value >> 16)) & 0xFFFF);
}

public static uint Reverse(uint value)
{
    return (((uint)Reverse((ushort)value) & 0xFFFF) << 16)
            | ((uint)Reverse((ushort)(value >> 16)) & 0xFFFF);
}

public static short Reverse(short value)
{
    return (short)((((int)value & 0xFF) << 8) | (int)((value >> 8) & 0xFF));
}

public static ushort Reverse(ushort value)
{
    return (ushort)((((int)value & 0xFF) << 8) | (int)((value >> 8) & 0xFF));
}

 

posted @ 2020-12-12 17:03  Akatsuki-  阅读(531)  评论(0编辑  收藏  举报