⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 integers.hh

📁 COPE the first practical network coding scheme which is developped on click
💻 HH
字号:
// -*- c-basic-offset: 4; related-file-name: "../../lib/integers.cc" -*-#ifndef CLICK_INTEGERS_HH#define CLICK_INTEGERS_HH#if !HAVE___BUILTIN_FFS && HAVE_FFS && HAVE_STRINGS_H# include <strings.h>#endifCLICK_DECLS#ifdef HAVE_INT64_TYPESinline uint64_t htonq(uint64_t x) {    uint32_t hi = x >> 32;    uint32_t lo = x & 0xffffffff;    return (((uint64_t)htonl(lo)) << 32) | htonl(hi);}inline uint64_t ntohq(uint64_t x) {    uint32_t hi = x >> 32;    uint32_t lo = x & 0xffffffff;    return (((uint64_t)ntohl(lo)) << 32) | ntohl(hi);}#endif// MSB is bit #1#if HAVE___BUILTIN_CLZinline int ffs_msb(uint32_t x) {    return (x ? __builtin_clz(x) + 1 : 0);}#elseint ffs_msb(uint32_t);#endif#ifdef HAVE_INT64_TYPES# if HAVE___BUILTIN_CLZLL && SIZEOF_LONG_LONG == 8inline int ffs_msb(uint64_t x) {    return (x ? __builtin_clzll(x) + 1 : 0);}# elif HAVE___BUILTIN_CLZL && SIZEOF_LONG == 8inline int ffs_msb(uint64_t x) {    return (x ? __builtin_clzl(x) + 1 : 0);}# elif HAVE___BUILTIN_CLZ && SIZEOF_INT == 8inline int ffs_msb(uint64_t x) {    return (x ? __builtin_clz(x) + 1 : 0);}# elseint ffs_msb(uint64_t);# endif#endif// LSB is bit #1#if HAVE___BUILTIN_FFSinline int ffs_lsb(uint32_t x) {    return __builtin_ffs(x);}#elif HAVE_FFSinline int ffs_lsb(uint32_t x) {    return ffs(x);}#elseint ffs_lsb(uint32_t);#endif#ifdef HAVE_INT64_TYPES# if HAVE___BUILTIN_FFSLL && SIZEOF_LONG_LONG == 8inline int ffs_lsb(uint64_t x) {    return __builtin_ffsll(x);}# elif HAVE___BUILTIN_FFSL && SIZEOF_LONG == 8inline int ffs_lsb(uint64_t x) {    return __builtin_ffsl(x);}# elif HAVE___BUILTIN_FFS && SIZEOF_INT == 8inline int ffs_lsb(uint64_t x) {    return __builtin_ffs(x);}# elseint ffs_lsb(uint64_t);# endif#endifuint32_t int_sqrt(uint32_t);#if HAVE_INT64_TYPES && !CLICK_LINUXMODULEuint64_t int_sqrt(uint64_t);#endifCLICK_ENDDECLS#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -