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

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ù)是否為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)上看來的,因為浮點數(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>
            亚洲国产欧美日韩另类综合| 99亚洲精品| 欧美亚洲三区| 免费人成网站在线观看欧美高清| 韩国欧美国产1区| 欧美日韩国产综合网| 亚洲欧美日韩国产中文 | 可以看av的网站久久看| 免费久久99精品国产| 伊人久久噜噜噜躁狠狠躁| 国产精品日韩电影| 国产精品人成在线观看免费| 欧美理论在线播放| 中文久久精品| 欧美网站在线观看| 嫩模写真一区二区三区三州| 国产午夜精品在线观看| 在线视频日本亚洲性| 欧美精品系列| 久久久久久久久一区二区| 久久国产66| 欧美日本国产一区| 免费在线播放第一区高清av| 亚洲精品国产视频| 亚洲精品一区二区三区婷婷月| 日韩一级片网址| 久久gogo国模啪啪人体图| 欧美第一黄网免费网站| 国产亚洲精品美女| av成人福利| 欧美不卡一区| 亚洲尤物精选| 欧美乱在线观看| 极品少妇一区二区| 午夜精品亚洲一区二区三区嫩草| 免费毛片一区二区三区久久久| 一区二区欧美在线观看| 欧美专区日韩专区| 久久久国产成人精品| 欧美人与禽猛交乱配视频| 国产一区二区精品| 欧美一区二区三区在线视频| 91久久嫩草影院一区二区| 久久国产精品毛片| 国产日韩欧美一区二区| 亚洲午夜一二三区视频| 亚洲韩国一区二区三区| 玖玖精品视频| 亚洲电影网站| 欧美va亚洲va日韩∨a综合色| 亚洲精品一区二区三区四区高清 | 欧美在线视频播放| 欧美日韩免费观看一区| 亚洲乱码国产乱码精品精天堂 | 久久久蜜臀国产一区二区| 国产精品综合久久久| 午夜精品一区二区三区在线视| 亚洲精品专区| 欧美日韩天天操| 亚洲午夜电影| 亚洲一区二区三区四区中文| 国产精品久久久久77777| 亚洲欧美日韩爽爽影院| 亚洲午夜在线观看| 国产一区 二区 三区一级| 久久九九精品| 免费观看日韩av| 亚洲精品综合精品自拍| 99精品国产一区二区青青牛奶| 欧美色视频一区| 欧美一区二区私人影院日本 | 国产精品v欧美精品∨日韩| 亚洲影院高清在线| 午夜在线精品| 亚洲高清视频中文字幕| 亚洲国产精品久久久| 国产精品白丝av嫩草影院| 久久国产手机看片| 老司机午夜免费精品视频| 99这里有精品| 午夜在线成人av| 亚洲欧洲精品一区二区| 99re8这里有精品热视频免费| 国产精品v亚洲精品v日韩精品 | 久久久精品国产免大香伊| 久久人人看视频| 午夜精品一区二区三区在线视| 美女在线一区二区| 一本色道久久88综合亚洲精品ⅰ| 激情文学一区| 亚洲精品韩国| 日韩亚洲欧美成人| 久久人91精品久久久久久不卡| 久久成人资源| 亚洲午夜性刺激影院| 欧美电影免费| 亚洲国产免费看| 亚洲国产综合视频在线观看| 久热精品在线视频| 欧美jjzz| 亚洲国产小视频在线观看| 久久一区二区精品| 亚洲激精日韩激精欧美精品| 最新国产の精品合集bt伙计| 欧美激情一区二区三区在线视频观看 | 久久精品青青大伊人av| 亚洲伦理在线| 久久免费的精品国产v∧| 日韩亚洲欧美精品| 欧美一区91| 久久综合中文字幕| 亚洲免费在线| 欧美另类videos死尸| 久久久久久久综合色一本| 欧美色综合天天久久综合精品| 老司机精品久久| 国产麻豆日韩| 在线中文字幕一区| 夜夜嗨一区二区三区| 玖玖国产精品视频| 老**午夜毛片一区二区三区| 国产精品爽黄69| 亚洲尤物影院| 香蕉亚洲视频| 欧美日韩中文字幕在线视频| 亚洲第一区在线| 在线播放亚洲| 久久亚洲影音av资源网| 久久噜噜噜精品国产亚洲综合| 国产精品资源| 篠田优中文在线播放第一区| 小嫩嫩精品导航| 国产精品一区二区在线观看| 亚洲午夜视频在线| 欧美在线观看视频在线| 国产麻豆精品theporn| 亚洲欧美日韩国产综合在线 | 中文精品视频| 欧美精品v日韩精品v韩国精品v | 久久人人爽国产| 女人天堂亚洲aⅴ在线观看| 黄色日韩精品| 老司机精品福利视频| 欧美激情一区二区在线 | 一区二区三区三区在线| 欧美日本韩国一区| 99亚洲一区二区| 欧美激情精品久久久久久蜜臀 | 久久久免费av| 欧美大片在线看| 亚洲毛片播放| 欧美激情精品久久久六区热门 | 亚洲在线成人精品| 国产欧美日韩视频| 久久精品三级| 亚洲激情小视频| 亚洲欧美日韩精品久久久久| 国产区日韩欧美| 狼狼综合久久久久综合网| 亚洲日韩欧美视频一区| 午夜精品亚洲| 亚洲国产精品福利| 欧美日韩中文在线观看| 西西人体一区二区| 亚洲国产一区二区三区在线播 | 亚洲综合色激情五月| 国产婷婷一区二区| 欧美精品videossex性护士| 亚洲综合电影| 亚洲国产视频a| 欧美一区二区三区免费视| 亚洲电影一级黄| 国产精品美女视频网站| 久久在线免费观看视频| 亚洲私拍自拍| 性久久久久久久| 欧美在线观看你懂的| 亚洲成在人线av| 欧美日韩在线播放三区四区| 欧美一区二区私人影院日本| 亚洲日本aⅴ片在线观看香蕉| 性欧美18~19sex高清播放| 亚洲激情欧美| 国产主播精品| 国产精品毛片大码女人| 美国十次成人| 久久国产主播| 午夜精品久久| 一本到高清视频免费精品| 欧美成人一区二区三区片免费| 午夜在线a亚洲v天堂网2018| 亚洲精品国产精品乱码不99| 国产日韩综合| 国产精品影片在线观看| 欧美日韩理论| 欧美高清视频一区二区三区在线观看| 亚洲女同同性videoxma| aa级大片欧美三级| 亚洲精品婷婷| 日韩视频免费|