现在的位置: 首页 > 综合 > 正文

本机字节序转网络字节序的一种实现

2013年03月02日 ⁄ 综合 ⁄ 共 596字 ⁄ 字号 评论关闭

#include <iostream>
using namespace std;
typedef unsigned char BYTE;
typedef long long LONGLONG;
inline long SwapLong(const BYTE* pByte)
{
    return (pByte[0] << 24) |
            (pByte[1] << 16) |
            (pByte[2] << 8)  |
            pByte[3];
}

inline LONGLONG SwapI64(const BYTE* pByte)
{
    return ((LONGLONG)SwapLong(pByte)) << 32 |
            SwapLong(pByte + 4);
}

int main( void )

   long l  = 0x01020304;
   LONGLONG ll = 0x0102030405060708;
   BYTE * pl = (BYTE*)&l;
   BYTE * pll = (BYTE*)&ll;
   cout<<(long)pl[0]<<endl;
   cout<<(LONGLONG)pll[0]<<endl;
   l = SwapLong(pl);
   ll = SwapI64(pll);
   cout<<(long)pl[0]<<endl;
   cout<<(LONGLONG)pll[0]<<endl;
   return 0;
}

抱歉!评论已关闭.