Chinaunix首页 | 论坛 | 博客
  • 博客访问: 25810
  • 博文数量: 7
  • 博客积分: 230
  • 博客等级: 二等列兵
  • 技术积分: 90
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-28 10:47
文章分类
文章存档

2011年(2)

2010年(1)

2009年(4)

我的朋友

分类: LINUX

2010-10-19 16:12:51

#include "netinet/in.h"
#define UINT64 unsigned long long
#define UINT32 unsigned int

UINT64 ntohUINT64(UINT64 arg64)
{
    UINT64 res64 = 0;
#if __BYTE_ORDER == __LITTLE_ENDIAN
    UINT32 low = (UINT32) (arg64 & 0x00000000FFFFFFFFLL);
    UINT32 high = (UINT32) ((arg64 & 0xFFFFFFFF00000000LL) >> 32);
    low = ntohl(low);
    high = ntohl(high);
    res64 = (UINT64) high + (((UINT64) low) << 32);
#else
    res64 = arg64;
#endif   
    return res64;
}

UINT64 htoUINT64(UINT64 arg64)
{
    UINT64 res64 = 0;
#if __BYTE_ORDER == __LITTLE_ENDIAN   
    UINT32 low = (UINT32) (arg64 & 0x00000000FFFFFFFFLL);
    UINT32 high = (UINT32) ((arg64 & 0xFFFFFFFF00000000LL) >> 32);

    low = htonl(low);
    high = htonl(high);

    res64 = (UINT64) high + (((UINT64) low) << 32);
#else
    res64 = arg64;
#endif   
    return res64;
}
阅读(2512) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~