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

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

先說(shuō)第一個(gè)問(wèn)題,我有兩個(gè)思路
第一,可以通過(guò)判斷M的二進(jìn)制中1的個(gè)數(shù)。而判斷M中1的個(gè)數(shù)可以通過(guò)下面方法獲得
int GetOneCnt(int m) 
{
    if ( m == 0 )
        return 0;
    
    int cnt = 1;
    while(m & (m-1))
    {
        cnt++;
        m--;
    }
    
    return cnt;
}
很明顯M中1的個(gè)數(shù)為1和M是2的N次方互為沖要條件
第二個(gè)思路,我們可以這樣,還是利用M的二進(jìn)制表示,從最高位開(kāi)始,以變量high_pos表示第一個(gè)1的下標(biāo),接著從最低位開(kāi)始,變量low_pos表示第一個(gè)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;
}

再說(shuō)第二個(gè)問(wèn)題
其實(shí)有了第一個(gè)問(wèn)題的思路,這個(gè)問(wèn)題就更好解決了,先判斷一個(gè)數(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對(duì)2^highestBit求余
    highestBit += ( mask > 0 );

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

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

問(wèn)題二的解法是網(wǎng)上看來(lái)的,因?yàn)楦↑c(diǎn)數(shù)前1+8位記錄了符號(hào)和指數(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);
}
這個(gè)似乎效率也不差,而且沒(méi)有bug,以上供樓主參考  回復(fù)  更多評(píng)論
  
# re: 兩個(gè)小問(wèn)題
2012-10-01 17:56 | 梨樹(shù)陽(yáng)光
@Eric
非常感謝  回復(fù)  更多評(píng)論
  
# re: 兩個(gè)小問(wèn)題
2012-10-01 20:01 | yrj
Ref: the FXT library and the fxtbook: "Matters Computational" http://www.jjj.de/fxt/  回復(fù)  更多評(píng)論
  
# re: 兩個(gè)小問(wèn)題
2012-10-08 18:20 | luckyC++
@Eric
原諒我的無(wú)知。勞煩大俠告知fb7是什么?望不吝賜教,在此謝過(guò)!  回復(fù)  更多評(píng)論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲欧美伊人| 欧美精品电影| 国产一区二区久久久| 久久精品国产第一区二区三区最新章节| 亚洲精品午夜| 国产精品劲爆视频| 欧美一区国产一区| 久久精品国产69国产精品亚洲 | 亚洲欧美bt| 国产精品永久免费在线| 久久久久久久久蜜桃| 另类欧美日韩国产在线| 亚洲精品麻豆| 亚洲字幕一区二区| 在线精品视频一区二区| 亚洲国产经典视频| 国产精品成人免费| 毛片精品免费在线观看| 欧美母乳在线| 久久久91精品国产| 欧美福利电影在线观看| 欧美一区二区三区免费看 | 一区二区高清视频在线观看| 国产精品日韩欧美一区二区三区| 久久久水蜜桃| 欧美日韩国产美女| 久久色在线观看| 欧美日韩另类在线| 免费不卡视频| 国产精品国内视频| 欧美黄色一区二区| 国产精品久久久久久av下载红粉 | 亚洲激情电影中文字幕| 亚洲午夜一二三区视频| 亚洲人人精品| 久久成人国产| 午夜精品久久久久久久久| 另类激情亚洲| 久久久精品动漫| 国产精品免费福利| 亚洲精品免费在线播放| 极品尤物一区二区三区| 亚洲免费视频在线观看| aa成人免费视频| 久久美女性网| 久久精品国产99| 欧美三级日本三级少妇99| 欧美激情第一页xxx| 国产日韩欧美高清免费| 亚洲最新在线视频| 一本色道久久88亚洲综合88| 久久久久久伊人| 久久精品国产亚洲a| 国产精品人人做人人爽| 99精品国产福利在线观看免费| 亚洲第一页中文字幕| 久久国产主播精品| 久久精品成人一区二区三区蜜臀 | 黄色一区二区三区| 亚洲一区日韩在线| 亚洲一区不卡| 欧美午夜激情视频| 夜色激情一区二区| 亚洲一区二区三区免费观看| 欧美日韩成人激情| 日韩网站免费观看| 亚洲女女女同性video| 欧美视频四区| 国产精品99久久久久久人 | 国内精品久久久久影院色| 欧美伊人久久久久久久久影院 | 欧美一级夜夜爽| 国产九区一区在线| 欧美一区国产一区| 美女视频黄免费的久久| 亚洲国产精品福利| 欧美精品成人91久久久久久久| 亚洲国产91精品在线观看| 亚洲美女黄色片| 欧美午夜精品理论片a级按摩 | 久热精品视频在线观看| 激情亚洲网站| 欧美h视频在线| 一区二区三区.www| 欧美在线视频免费播放| 在线成人性视频| 欧美精品亚洲| 亚洲欧美国产精品桃花 | 亚洲人成网站777色婷婷| 欧美精选午夜久久久乱码6080| av成人免费在线观看| 久久久久久**毛片大全| 伊人久久大香线蕉综合热线| 欧美激情女人20p| 亚洲制服少妇| 欧美成人一区二免费视频软件| 99精品国产一区二区青青牛奶| 欧美四级电影网站| 久久亚洲国产成人| 99国产精品国产精品久久| 久久久国产视频91| 一区二区三区免费观看| 国外成人性视频| 欧美日韩一区二| 久久精品国产第一区二区三区最新章节| 欧美超级免费视 在线| 亚洲欧美国产精品桃花| 亚洲国产导航| 国产伦精品一区二区三区视频孕妇| 久久精品综合一区| 日韩一级裸体免费视频| 麻豆精品传媒视频| 欧美一区二粉嫩精品国产一线天| 亚洲国产国产亚洲一二三| 国产精品天天看| 欧美激情第五页| 久久噜噜亚洲综合| 亚洲欧美中日韩| 亚洲精品综合久久中文字幕| 久久综合久色欧美综合狠狠| 亚洲一区免费| 一区二区三区日韩欧美| 亚洲第一主播视频| 国产亚洲精品久| 国产精品自在线| 欧美性一区二区| 欧美日韩成人免费| 欧美不卡激情三级在线观看| 欧美一区二区黄色| 午夜精品久久久久99热蜜桃导演| 日韩一级成人av| 亚洲区国产区| 91久久精品国产91性色| 欧美成人性网| 欧美粗暴jizz性欧美20| 牛人盗摄一区二区三区视频| 久久久之久亚州精品露出| 欧美在线综合视频| 久久激情中文| 久久久99国产精品免费| 欧美中文日韩| 久久九九精品| 久久综合国产精品| 美女精品国产| 欧美韩日一区二区| 91久久精品视频| 最新亚洲电影| 亚洲最新视频在线| 在线午夜精品| 香港成人在线视频| 久久久久99| 欧美成人在线免费观看| 欧美精品一区在线| 欧美日韩美女在线| 国产精品一二三四区| 国产一区二区三区黄视频| 极品av少妇一区二区| 亚洲高清不卡av| 亚洲毛片av在线| 中文亚洲视频在线| 欧美亚洲综合在线| 久久九九99视频| 亚洲国产精品va在线看黑人动漫| 亚洲欧洲一二三| 亚洲午夜久久久| 久久久久久国产精品mv| 欧美高清视频在线| 欧美日韩在线视频一区| 国产日韩在线一区二区三区| 在线观看国产精品淫| 一本色道久久88精品综合| 亚洲欧美一区二区视频| 麻豆久久婷婷| 亚洲精品一区在线| 午夜欧美精品| 欧美极品一区| 国产视频一区在线观看| 亚洲麻豆国产自偷在线| 午夜欧美精品| 亚洲国产精品123| 亚洲欧美99| 欧美日本一道本| 国模吧视频一区| 一区二区三区国产精华| 久久综合久久综合九色| 日韩视频一区| 久久亚洲欧洲| 国产视频亚洲精品| 一卡二卡3卡四卡高清精品视频| 欧美在线中文字幕| 99re热精品| 欧美freesex8一10精品| 国产欧美视频一区二区| 夜夜爽99久久国产综合精品女不卡 | 久久免费高清视频| 国产精品毛片a∨一区二区三区| 91久久精品一区二区别| 久久久久久9999| 在线综合欧美| 欧美日韩1区|