青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 15,comments - 21,trackbacks - 0
開門見山,我先提出幾個問題,大家可以先想想,然后我再說出我的方法
1.如何判斷一個數(shù)M是否為2的N次方?
2.一個數(shù)N,如何得到一個數(shù)是M,M是不小于N的最小2的K次方

先說第一個問題,我有兩個思路
第一,可以通過判斷M的二進制中1的個數(shù)。而判斷M中1的個數(shù)可以通過下面方法獲得
int GetOneCnt(int m) 
{
    if ( m == 0 )
        return 0;
    
    int cnt = 1;
    while(m & (m-1))
    {
        cnt++;
        m--;
    }
    
    return cnt;
}
很明顯M中1的個數(shù)為1和M是2的N次方互為沖要條件
第二個思路,我們可以這樣,還是利用M的二進制表示,從最高位開始,以變量high_pos表示第一個1的下標,接著從最低位開始,變量low_pos表示第一個1的下標,如果high_pos=low_pos,則M為2的N次方
int HighestBitSet(int input)
{
    register int result;

    if (input == 0)
    {
        return  -1;
    }

#ifdef WIN32
    _asm bsr eax, input
    _asm mov result, eax
#else
    asm("bsr %1, %%eax;"
    "movl %%eax, %0"
    :"=r"(result)
    :"r"(input)
    :"%eax");
#endif

    return result;
}
int LowestBitSet(int input)
{
    register int result;

    if (input == 0)
    {
        return  -1;
    }

#ifdef WIN32
    _asm bsf eax, input
    _asm mov result, eax
#else
    asm("bsf %1, %%eax;"
    "movl %%eax, %0"
    :"=r"(result)
    :"r"(input)
    :"%eax");
#endif

    return result;
}

再說第二個問題
其實有了第一個問題的思路,這個問題就更好解決了,先判斷一個數(shù)是否為2^N,如果是,直接返回,否則返回2^(N+1)
代碼如下
int CeilingPowerOfTwo(int iInput)
{
    if (iInput <= 1)
        return  1;

    int32_t highestBit = HighestBitSet(iInput);
    int32_t mask = iInput & ((1 << highestBit) - 1); // 相當于input對2^highestBit求余
    highestBit += ( mask > 0 );

    return (1<<highestBit);
}
posted on 2012-10-01 15:53 梨樹陽光 閱讀(1409) 評論(4)  編輯 收藏 引用 所屬分類: C

FeedBack:
# re: 兩個小問題[未登錄]
2012-10-01 17:49 | Eric
如果是要求效率最佳,使用位運算最快:
問題一:if (x&(x-1)==0) 則是2的N次方
問題二:float f = (float)(v);
return 1 << ((*(unsigned int*)(&f) >> 23) - 126);

問題二的解法是網(wǎng)上看來的,因為浮點數(shù)前1+8位記錄了符號和指數(shù),求出指數(shù)再用移位得到最小的2的N次方
還看到另一種解法:fb 7的malloc.c里面的實現(xiàn):
static inline size_t
pow2_ceil(size_t x)
{

x--;
x |= x >> 1;
x |= x >> 2;
x |= x >> 4;
x |= x >> 8;
x |= x >> 16;
#if (SIZEOF_PTR == 8)
x |= x >> 32;
#endif
x++;
return (x);
}
這個似乎效率也不差,而且沒有bug,以上供樓主參考  回復(fù)  更多評論
  
# re: 兩個小問題
2012-10-01 17:56 | 梨樹陽光
@Eric
非常感謝  回復(fù)  更多評論
  
# re: 兩個小問題
2012-10-01 20:01 | yrj
Ref: the FXT library and the fxtbook: "Matters Computational" http://www.jjj.de/fxt/  回復(fù)  更多評論
  
# re: 兩個小問題
2012-10-08 18:20 | luckyC++
@Eric
原諒我的無知。勞煩大俠告知fb7是什么?望不吝賜教,在此謝過!  回復(fù)  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲欧洲在线一区| 欧美激情网友自拍| 狠色狠色综合久久| 国产一区视频在线看| 国产精品揄拍一区二区| 国产精品xxx在线观看www| 欧美日韩无遮挡| 在线精品国产欧美| 国产日韩欧美夫妻视频在线观看| 欧美日韩另类一区| 国产精品资源| 激情成人av| 亚洲美女在线看| 亚洲婷婷国产精品电影人久久| 夜夜夜久久久| 久久精品在线观看| 亚洲精品久久久久| 日韩一区二区电影网| 亚洲午夜视频在线| 久久一二三国产| 欧美全黄视频| 在线观看欧美日韩| 亚洲欧美日韩成人| 亚洲人成网站精品片在线观看| 中文欧美字幕免费| 欧美不卡激情三级在线观看| 国产精品久久久久久福利一牛影视| 国产亚洲午夜| 久久久噜噜噜久久中文字免| 亚洲欧洲日产国产综合网| 99综合在线| 欧美专区福利在线| 日韩视频不卡| 99re热这里只有精品视频| 亚洲人在线视频| 久久gogo国模啪啪人体图| 久久久久久**毛片大全| 欧美激情区在线播放| 在线观看日韩欧美| 亚洲欧美激情视频在线观看一区二区三区 | 国产综合欧美| 欧美亚洲日本网站| 亚洲婷婷在线| 国内精品久久久久久久果冻传媒 | 久久婷婷综合激情| 国产亚洲精品资源在线26u| 久久激情视频免费观看| 亚洲一区三区电影在线观看| 国产精品亚洲网站| 欧美专区在线播放| 篠田优中文在线播放第一区| 国产免费观看久久| 欧美伊久线香蕉线新在线| 亚洲欧美日韩一区二区三区在线观看 | 欧美亚洲在线观看| 一本色道久久综合亚洲二区三区| 欧美日韩一区在线播放| 久久久久99| 欧美视频不卡中文| 亚洲精品美女在线观看| 国语自产在线不卡| 亚洲午夜激情在线| 亚洲一区二区视频| 欧美日韩一区二区欧美激情| 免费亚洲一区二区| 国内一区二区在线视频观看| 中文日韩电影网站| 欧美亚洲免费电影| 国产有码一区二区| 久久精品视频一| 久久久久国产免费免费| 韩国成人精品a∨在线观看| 欧美一区二区三区在线视频| 久久aⅴ国产欧美74aaa| 国模私拍视频一区| 麻豆成人小视频| 亚洲黄一区二区三区| 一区二区冒白浆视频| 国产精品久久久久aaaa| 久久精品亚洲乱码伦伦中文| 欧美成人午夜剧场免费观看| 亚洲国产视频一区| 欧美日韩中文字幕精品| 午夜欧美视频| 亚洲国产va精品久久久不卡综合| 一本久久综合| 狠狠色狠狠色综合日日91app| 一本色道久久综合亚洲精品高清| 国产乱人伦精品一区二区| 日韩视频一区二区| 日韩午夜黄色| 国产欧美精品一区| 麻豆精品网站| 欧美一级网站| 日韩亚洲不卡在线| 在线观看免费视频综合| 国产精品久久| 欧美三级电影大全| 欧美激情亚洲激情| 久久中文字幕一区| 欧美在线视频在线播放完整版免费观看| 欧美日韩视频专区在线播放 | 午夜精品久久久久影视| 99成人在线| 日韩视频国产视频| 亚洲欧洲精品一区二区精品久久久| 久久久久免费观看| 久久久久免费| 老牛影视一区二区三区| 欧美一区二区三区视频免费播放| 亚洲综合99| 久久久久国产一区二区三区四区| 亚洲欧美日韩在线一区| 性高湖久久久久久久久| 欧美在线视频不卡| 久久久久久久国产| 欧美一区综合| 久久久99精品免费观看不卡| 欧美日韩免费观看一区| 欧美三级日韩三级国产三级| 欧美日韩国产丝袜另类| 国产精品三区www17con| 好吊色欧美一区二区三区视频| 在线观看日韩精品| 亚洲另类在线一区| 欧美主播一区二区三区美女 久久精品人| 亚洲欧美日韩视频一区| 久久女同互慰一区二区三区| 狼人社综合社区| 亚洲影音先锋| 亚洲国产精品精华液2区45| 一本到12不卡视频在线dvd| 欧美大色视频| 国产综合自拍| 亚洲字幕一区二区| 99精品欧美一区二区蜜桃免费| 久久女同精品一区二区| 国内外成人免费激情在线视频网站| 一区二区三区四区国产精品| 亚洲激情国产| 久久久久综合| 午夜精品久久久久久久久| 国产精品一级| 亚洲欧洲在线视频| 激情亚洲成人| 国产又爽又黄的激情精品视频| 国内精品免费午夜毛片| 蜜桃伊人久久| 欧美激情一级片一区二区| 亚洲色图在线视频| 午夜亚洲一区| 久久av二区| 美日韩丰满少妇在线观看| 一区二区三区日韩欧美| 亚洲精品久久久久久久久| 一区二区日韩精品| 男男成人高潮片免费网站| 久久九九国产精品| 欧美91精品| 欧美成人综合网站| 亚洲精品影院| 宅男噜噜噜66国产日韩在线观看| 欧美一区二区三区免费大片| 午夜久久久久| 亚洲视屏在线播放| 亚洲第一精品久久忘忧草社区| 欧美一进一出视频| 欧美一区2区视频在线观看| 久久福利电影| 亚洲欧美日韩在线一区| 国产精品一区久久久| 国产精品久久久久久久7电影 | 亚洲一区二区不卡免费| 先锋影音网一区二区| 欧美性一区二区| 亚洲国产专区校园欧美| 午夜日韩在线观看| 久久一区国产| 日韩午夜剧场| 久久婷婷国产麻豆91天堂| 国产精品xxxxx| 亚洲精品孕妇| 亚洲精品中文字| 久久国产精品电影| 亚洲精品日韩激情在线电影| 欧美激情免费在线| 99国产精品| 牛牛国产精品| 国产日本欧美一区二区三区在线 | 欧美91福利在线观看| 欧美激情一区二区三区在线视频| 亚洲国产人成综合网站| 欧美日韩人人澡狠狠躁视频| 在线播放中文一区| 久久久国产精品一区| 欧美激情中文字幕一区二区| 欧美阿v一级看视频| 欧美理论视频| 一区二区三区av| 一区二区久久久久久|