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

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 梨樹陽光 閱讀(1424) 評論(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,以上供樓主參考  回復  更多評論
  
# re: 兩個小問題
2012-10-01 17:56 | 梨樹陽光
@Eric
非常感謝  回復  更多評論
  
# re: 兩個小問題
2012-10-01 20:01 | yrj
Ref: the FXT library and the fxtbook: "Matters Computational" http://www.jjj.de/fxt/  回復  更多評論
  
# re: 兩個小問題
2012-10-08 18:20 | luckyC++
@Eric
原諒我的無知。勞煩大俠告知fb7是什么?望不吝賜教,在此謝過!  回復  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲视频一区二区在线观看| 亚洲日本欧美天堂| 欧美日韩在线一区二区| 久久久久国产成人精品亚洲午夜| 欧美成人一区在线| 久久九九精品| 国产乱人伦精品一区二区| 最新热久久免费视频| 禁断一区二区三区在线 | 午夜亚洲影视| 欧美韩国在线| 亚洲国产日韩在线一区模特| 在线观看成人一级片| 欧美一区二区视频在线观看| 午夜精品99久久免费| 欧美体内谢she精2性欧美| 亚洲三级影院| 一区二区三区国产在线| 欧美激情在线狂野欧美精品| 欧美韩日一区二区| 亚洲二区三区四区| 久久综合中文字幕| 免费91麻豆精品国产自产在线观看| 国产伦精品一区二区三区视频孕妇| 一区二区三区成人| 亚洲欧美激情四射在线日 | 国产精品国产自产拍高清av| 亚洲精品麻豆| 亚洲综合日本| 国产日韩精品一区二区三区在线| 欧美一区二区精品久久911| 久久精品99国产精品酒店日本| 国产精品夜夜夜一区二区三区尤| 亚洲自啪免费| 久久午夜av| 亚洲欧洲精品一区| 欧美日韩国产91| 一级成人国产| 久久国产福利| 在线成人黄色| 欧美日本在线看| 99视频有精品| 久久不射中文字幕| 亚洲成人自拍视频| 欧美理论电影网| 亚洲字幕在线观看| 欧美aⅴ一区二区三区视频| 亚洲国产99| 欧美视频一区二区三区四区| 亚洲女人小视频在线观看| 久久蜜桃av一区精品变态类天堂| 亚洲电影专区| 国产精品欧美日韩一区二区| 久久国产精品一区二区三区四区| 亚洲第一综合天堂另类专| 亚洲一区影音先锋| 一区在线视频| 欧美视频网址| 久久久久天天天天| 99在线视频精品| 女同性一区二区三区人了人一| 99在线精品视频在线观看| 国产麻豆午夜三级精品| 久热精品视频在线观看一区| 一区二区久久久久久| 免费不卡中文字幕视频| 亚洲午夜免费福利视频| 亚洲二区精品| 国产乱子伦一区二区三区国色天香 | 欧美成人自拍| 欧美影院成年免费版| 亚洲免费福利视频| 欧美成人免费网站| 久久精品男女| 亚洲一区二区高清| 亚洲麻豆av| 亚洲第一中文字幕在线观看| 国产精品网曝门| 欧美日韩精品三区| 麻豆久久久9性大片| 午夜免费在线观看精品视频| 亚洲精品久久久蜜桃| 免费亚洲视频| 久久精品综合网| 午夜精品亚洲一区二区三区嫩草| 亚洲欧洲精品一区二区三区不卡 | 久久精品夜色噜噜亚洲a∨| 亚洲最黄网站| 91久久精品视频| 欧美大片免费久久精品三p| 久久久成人网| 久久精品国产亚洲精品| 欧美一区二区三区的| 亚洲一级黄色| 一区二区精品国产| 亚洲精品一区二区在线观看| 伊人成人开心激情综合网| 国产欧美精品日韩精品| 国产精品久久久久久久一区探花| 欧美日韩国产三级| 欧美日本韩国一区| 欧美理论在线播放| 欧美国产日韩在线观看| 老司机一区二区三区| 久久婷婷综合激情| 麻豆精品视频在线| 久热精品视频在线观看| 老色批av在线精品| 嫩草国产精品入口| 欧美成人一区二区三区在线观看 | 国产亚洲网站| 国产一区二区三区在线播放免费观看| 国产热re99久久6国产精品| 国产毛片一区| 红桃视频国产精品| 亚洲国产精品激情在线观看| 亚洲国产视频一区二区| 亚洲美女黄色| 亚洲一区日韩在线| 欧美在线看片| 免费看亚洲片| 亚洲人成人一区二区三区| 亚洲毛片在线| 在线一区亚洲| 欧美一级视频一区二区| 久久视频在线免费观看| 免费日韩av| 国产精品99一区二区| 国产日韩视频一区二区三区| 国外成人网址| 亚洲毛片一区| 欧美在线亚洲一区| 欧美激情视频一区二区三区不卡| 亚洲精品免费一区二区三区| 中文精品一区二区三区| 欧美在线影院在线视频| 欧美大片免费| 国产人成一区二区三区影院| 在线成人黄色| 亚洲欧美成人一区二区在线电影 | 亚洲国产成人精品久久| 99精品久久| 久久精品国产99| 亚洲国产专区校园欧美| 亚洲自啪免费| 欧美激情一区二区三区在线视频| 国产精品成人一区二区网站软件 | 欧美激情国产精品| 国产日本欧美视频| 日韩一区二区电影网| 久久精彩视频| 99热在线精品观看| 久久这里有精品视频| 国产精品国产a级| 亚洲精品看片| 久久精品欧美| 一区二区三区产品免费精品久久75 | 久热精品视频在线观看一区| 国产精品www网站| 亚洲欧洲日本mm| 久久夜色精品国产亚洲aⅴ| aa级大片欧美三级| 欧美暴力喷水在线| 国语精品一区| 久久国产黑丝| 亚洲中字黄色| 欧美日韩国产综合一区二区| 在线成人h网| 久久久久久香蕉网| 亚洲一区二区久久| 欧美日韩免费精品| 亚洲肉体裸体xxxx137| 久久字幕精品一区| 欧美一级久久| 国产视频自拍一区| 午夜精品久久久久久久男人的天堂| 亚洲激情电影中文字幕| 美女视频黄 久久| 国产综合在线视频| 久久国产一区二区| 亚洲在线中文字幕| 国产精品久久久久久久久久免费看| 亚洲精品久久7777| 亚洲国产三级网| 欧美激情第9页| 亚洲乱亚洲高清| 最近中文字幕日韩精品| 欧美顶级大胆免费视频| 在线不卡亚洲| 欧美激情二区三区| 裸体歌舞表演一区二区| 91久久精品国产91久久| 欧美激情在线观看| 欧美精品大片| 亚洲午夜激情免费视频| 一本色道久久综合亚洲精品婷婷| 欧美日韩国产在线播放| 亚洲私人影吧| 午夜精品久久久久久99热软件| 国产日韩一区二区三区|