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

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

先說第一個問題,我有兩個思路
第一,可以通過判斷M的二進(jìn)制中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的二進(jìn)制表示,從最高位開始,以變量high_pos表示第一個1的下標(biāo),接著從最低位開始,變量low_pos表示第一個1的下標(biāo),如果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í)有了第一個問題的思路,這個問題就更好解決了,先判斷一個數(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); // 相當(dāng)于input對2^highestBit求余
    highestBit += ( mask > 0 );

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

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

問題二的解法是網(wǎng)上看來的,因?yàn)楦↑c(diǎn)數(shù)前1+8位記錄了符號和指數(shù),求出指數(shù)再用移位得到最小的2的N次方
還看到另一種解法:fb 7的malloc.c里面的實(shí)現(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>
            亚洲欧美一区二区三区在线| 国内综合精品午夜久久资源| 亚洲影院一区| 中文网丁香综合网| 亚洲一区二区三区四区五区午夜| 一区二区三区视频在线观看| 制服诱惑一区二区| 亚洲专区一区| 欧美一区二区观看视频| 欧美日韩国产va另类| 亚洲国产精品v| 一区二区三区在线视频观看| 在线不卡欧美| 999在线观看精品免费不卡网站| 亚洲国产精品va在线看黑人动漫| 亚洲伦理网站| 久久se精品一区精品二区| 久久婷婷国产综合精品青草| 欧美国产高清| 亚洲一区二区久久| 久久综合色影院| 国产精品成人在线| 亚洲福利视频一区二区| 亚洲一区二区黄色| 六十路精品视频| 在线亚洲观看| 免费亚洲视频| 国产日本欧美一区二区三区在线| 亚洲国产日韩欧美| 欧美在线观看天堂一区二区三区| 欧美成人综合| 小嫩嫩精品导航| 欧美无乱码久久久免费午夜一区| 激情自拍一区| 羞羞色国产精品| 亚洲人成啪啪网站| 欧美一区二区三区四区在线观看| 欧美激情一级片一区二区| 加勒比av一区二区| 亚洲欧美综合精品久久成人| 亚洲二区在线观看| 久久精品中文字幕一区二区三区| 国产精品美女久久久久久2018| 亚洲国产精品悠悠久久琪琪| 久久久精品免费视频| 亚洲天堂男人| 国产精品成人免费视频| 夜夜爽av福利精品导航| 欧美国产先锋| 久久人人爽人人爽| 激情欧美一区二区三区在线观看| 亚洲一区自拍| 亚洲精品视频一区二区三区| 欧美大片一区二区三区| 亚洲国产综合91精品麻豆| 麻豆成人在线播放| 久久美女性网| 在线日韩av永久免费观看| 鲁大师成人一区二区三区| 久久久久久91香蕉国产| 在线观看欧美视频| 国产精品视频一区二区三区 | 免费日韩av| 午夜久久久久久久久久一区二区| 国产精品久久午夜| 午夜影视日本亚洲欧洲精品| 亚洲影院免费观看| 国产视频亚洲| 狂野欧美一区| 久久综合图片| 99日韩精品| 一区二区三区日韩精品视频| 国产精品成人一区二区三区夜夜夜 | 欧美一区二区三区在线看 | 牛人盗摄一区二区三区视频| 亚洲国产美国国产综合一区二区| 欧美成人激情视频| 欧美成年人在线观看| 99国产精品99久久久久久| 一本色道久久综合狠狠躁篇怎么玩| 欧美体内谢she精2性欧美| 午夜精品久久久久久久99樱桃| 亚洲欧美国产高清| 在线观看亚洲视频| 亚洲精品1区2区| 欧美性猛交xxxx乱大交退制版| 欧美一区二区性| 老司机精品福利视频| 中文国产一区| 久久久91精品国产| 亚洲视频axxx| 欧美一区二区三区在线| 亚洲精品美女久久7777777| 一区二区三区四区五区视频| 国产一区二区主播在线| 亚洲国产一区视频| 国产区精品视频| 91久久在线观看| 狠狠色狠狠色综合日日91app| 91久久精品一区二区别| 国产人久久人人人人爽| 亚洲国产精品一区二区第四页av| 国产精品天天摸av网| 欧美大胆人体视频| 国产美女诱惑一区二区| 亚洲破处大片| 禁断一区二区三区在线| 一本色道久久加勒比精品| 亚洲国产午夜| 久久精品国产亚洲一区二区三区| 亚洲一区二区三区欧美| 欧美/亚洲一区| 久久影视精品| 国产偷国产偷精品高清尤物| 中文在线一区| 宅男噜噜噜66一区二区66| 欧美91大片| 欧美国产先锋| 亚洲国产天堂久久综合| 久久亚洲色图| 玉米视频成人免费看| 中文亚洲字幕| 在线亚洲电影| 欧美电影免费| 欧美大学生性色视频| 狠狠网亚洲精品| 亚洲欧美视频在线观看视频| 亚洲欧美精品中文字幕在线| 欧美日韩黄色大片| 日韩特黄影片| 一区二区三区久久| 欧美日韩一二区| 99亚洲伊人久久精品影院红桃| 亚洲精品日本| 欧美伦理a级免费电影| 亚洲精品国产精品国产自| 日韩亚洲一区在线播放| 欧美激情亚洲| 99re热这里只有精品视频| 一区二区不卡在线视频 午夜欧美不卡在 | 亚洲天堂网在线观看| 欧美激情精品久久久久久大尺度| 女人天堂亚洲aⅴ在线观看| 国内精品嫩模av私拍在线观看| 性色av一区二区三区在线观看 | 午夜精品999| 久久精品观看| 在线色欧美三级视频| 欧美/亚洲一区| 亚洲作爱视频| 久久se精品一区二区| 好男人免费精品视频| 老司机aⅴ在线精品导航| 亚洲福利小视频| 中文国产亚洲喷潮| 国产三级欧美三级日产三级99| 久久激五月天综合精品| 欧美岛国在线观看| 国产精品99久久久久久www| 国产精品美女999| 久久久青草婷婷精品综合日韩 | 国产一区二区观看| 老牛嫩草一区二区三区日本| 最新中文字幕亚洲| 午夜日韩av| 在线观看日韩www视频免费| 欧美激情日韩| 欧美一区三区三区高中清蜜桃| 欧美高潮视频| 欧美一区二区观看视频| 最新国产の精品合集bt伙计| 欧美亚男人的天堂| 久久天堂国产精品| 一区二区精品在线| 欧美成人黑人xx视频免费观看| 亚洲天堂免费观看| 在线观看精品视频| 国产精品欧美日韩| 欧美阿v一级看视频| 亚洲一区在线视频| 亚洲天天影视| 一色屋精品视频在线看| 欧美性jizz18性欧美| 久久午夜视频| 亚洲欧美中文在线视频| 亚洲精品视频在线| 另类激情亚洲| 欧美伊人久久久久久午夜久久久久| 亚洲国产欧美一区二区三区久久| 国产精品有限公司| 国产精品v片在线观看不卡| 欧美成人小视频| 噜噜噜噜噜久久久久久91| 欧美一区二区三区在线| 亚洲午夜极品| 一区二区三区日韩| 一区二区日韩伦理片| 亚洲国产精品久久久久秋霞蜜臀 | 久久精品一二三区| 亚洲欧美日韩一区二区三区在线 |