注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天马行空

宠辱不惊,闲看庭前花开花落;去留无意,漫观天外云展云舒……

 
 
 

日志

 
 
 
 

64位网络字节序与主机字节序转换  

2013-11-06 09:29:17|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
unsigned long long ntohll(unsigned long long val)
64位网络字节序与主机字节序转换 - 547502462 - 天马行空
{
    if (__BYTE_ORDER == __LITTLE_ENDIAN)
64位网络字节序与主机字节序转换 - 547502462 - 天马行空    {
        return (((unsigned long long )htonl((int)((val << 32) >> 32))) << 32) | (unsigned int)htonl((int)(val >> 32));
    }

    else if (__BYTE_ORDER == __BIG_ENDIAN)
64位网络字节序与主机字节序转换 - 547502462 - 天马行空    {
        return val;
    }

}


unsigned 
long long htonll(unsigned long long val)
64位网络字节序与主机字节序转换 - 547502462 - 天马行空
{
    if (__BYTE_ORDER == __LITTLE_ENDIAN)
64位网络字节序与主机字节序转换 - 547502462 - 天马行空    {
        return (((unsigned long long )htonl((int)((val << 32) >> 32))) << 32) | (unsigned int)htonl((int)(val >> 32));
    }

    else if (__BYTE_ORDER == __BIG_ENDIAN)
64位网络字节序与主机字节序转换 - 547502462 - 天马行空    {
        return val;
    }

}

内核中的实现

#define ___constant_swab64(x) \
 ((__u64)( \
  (__u64)(((__u64)(x) & (__u64)0x00000000000000ffULL) << 56) | \
  (__u64)(((__u64)(x) & (__u64)0x000000000000ff00ULL) << 40) | \
  (__u64)(((__u64)(x) & (__u64)0x0000000000ff0000ULL) << 24) | \
  (__u64)(((__u64)(x) & (__u64)0x00000000ff000000ULL) <<  8) | \
  (__u64)(((__u64)(x) & (__u64)0x000000ff00000000ULL) >>  8) | \
  (__u64)(((__u64)(x) & (__u64)0x0000ff0000000000ULL) >> 24) | \
  (__u64)(((__u64)(x) & (__u64)0x00ff000000000000ULL) >> 40) | \
  (__u64)(((__u64)(x) & (__u64)0xff00000000000000ULL) >> 56) ))



  评论这张
 
阅读(276)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018