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

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>
            久久综合精品一区| 亚洲精品久久久久中文字幕欢迎你 | 欧美精品激情| 亚洲精品免费一二三区| 欧美华人在线视频| 欧美久久久久中文字幕| 一区二区不卡在线视频 午夜欧美不卡在 | 亚洲成人自拍视频| 久久亚洲欧洲| 一本色道久久综合亚洲精品不| 亚洲人成网站精品片在线观看 | 亚洲免费影视第一页| 国产日韩欧美日韩| 女人色偷偷aa久久天堂| 欧美粗暴jizz性欧美20| 亚洲主播在线| 久久精品最新地址| 一区二区精品在线观看| 亚洲一区二区三区在线观看视频| 国产综合色精品一区二区三区| 欧美成年人视频网站欧美| 欧美精品一区二区三区视频 | 黄色成人在线免费| 亚洲欧洲一区二区三区在线观看| 久久国产精品久久国产精品| 欧美电影免费| 欧美日本一道本| 久久精品视频在线播放| 欧美激情免费在线| 欧美一区二区三区在线观看视频| 另类av一区二区| 午夜精品久久久久久久白皮肤| 久久久另类综合| 亚洲欧美国产精品va在线观看| 久久久久久网| 欧美在线免费播放| 欧美激情一区二区| 久久一综合视频| 国产精品黄色| 亚洲国产婷婷| 精品99一区二区三区| 在线中文字幕不卡| 亚洲片在线资源| 久久精视频免费在线久久完整在线看| 中文久久精品| 欧美激情一区二区三区蜜桃视频 | 欧美一区二区三区播放老司机| 免费成人av| 欧美一区二区三区久久精品茉莉花| 免费观看亚洲视频大全| 久久精精品视频| 国产精品美女| 一二美女精品欧洲| 亚洲精选视频免费看| 久久伊人亚洲| 久久亚洲国产成人| 国产曰批免费观看久久久| 亚洲一区二区三区色| 亚洲一区区二区| 欧美日韩国产一区精品一区| 亚洲欧洲在线看| 99re66热这里只有精品4| 开心色5月久久精品| 美日韩精品视频| 激情自拍一区| 久久亚洲私人国产精品va| 久久综合色综合88| 亚洲第一天堂av| 女女同性精品视频| 欧美激情中文字幕乱码免费| 亚洲激情影院| 欧美激情成人在线视频| 亚洲盗摄视频| 亚洲乱码国产乱码精品精可以看| 欧美大片18| av成人国产| 午夜精品剧场| 好男人免费精品视频| 久久久夜夜夜| 最新亚洲激情| 亚洲欧美国产高清| 国产专区精品视频| 免费视频一区| 亚洲人成网站777色婷婷| 亚洲午夜激情网页| 国产精品私房写真福利视频| 欧美亚洲综合网| 欧美国产日韩二区| 一区二区日韩伦理片| 国产真实乱偷精品视频免| 欧美日韩123| 亚洲嫩草精品久久| 免费不卡中文字幕视频| 99在线精品免费视频九九视| 国产精品啊v在线| 久久精品女人天堂| 亚洲清纯自拍| 久久久夜夜夜| 在线一区二区视频| 国产一区二区中文| 欧美另类极品videosbest最新版本| 亚洲色图自拍| 欧美电影在线免费观看网站| 亚洲一区二区三区四区五区午夜| 国产一区二区三区免费观看| 欧美激情国产日韩精品一区18| 亚洲一区二区在线播放| 女女同性精品视频| 亚洲女ⅴideoshd黑人| 亚洲电影在线| 国产精品视区| 欧美日韩视频一区二区| 久久久久se| 亚洲一区亚洲二区| 亚洲国产日韩精品| 老牛嫩草一区二区三区日本| 亚洲直播在线一区| 亚洲免费观看高清完整版在线观看熊| 国产欧美在线观看一区| 欧美日韩的一区二区| 久久视频一区二区| 香港久久久电影| 99香蕉国产精品偷在线观看| 亚洲电影天堂av| 久久这里只精品最新地址| 午夜精品视频网站| 在线综合亚洲| 9l国产精品久久久久麻豆| 在线观看福利一区| 黑丝一区二区| 国产一区二区三区久久精品| 国产精品久久久久999| 欧美精品综合| 欧美精品国产| 欧美激情亚洲视频| 欧美二区在线看| 免费视频一区二区三区在线观看| 久久蜜桃精品| 久久乐国产精品| 久久婷婷国产综合国色天香| 久久精品噜噜噜成人av农村| 久久不射2019中文字幕| 欧美一区二区在线免费播放| 亚洲欧美99| 欧美一区网站| 久久国产精品网站| 久久亚洲综合色| 欧美成人午夜激情视频| 欧美mv日韩mv国产网站| 欧美二区视频| 欧美日韩精品欧美日韩精品| 欧美日韩国产成人在线| 欧美日韩性生活视频| 欧美日韩综合不卡| 国产精品亚洲第一区在线暖暖韩国| 国产精品嫩草99a| 国产日韩欧美日韩大片| 激情久久综合| 亚洲黄色成人| 一区二区毛片| 欧美一激情一区二区三区| 久久精品人人做人人爽| 欧美大片免费看| 亚洲毛片在线观看| 亚洲在线一区二区| 久久九九免费| 欧美成人免费网| 国产精品扒开腿做爽爽爽软件| 噜噜噜躁狠狠躁狠狠精品视频 | 国产精品尤物福利片在线观看| 国产精品视屏| 狠狠色丁香婷婷综合影院| 亚洲国产成人精品久久久国产成人一区 | 久久久蜜桃精品| 欧美精品成人在线| 国产欧美一区二区三区视频| 一区二区在线观看av| 亚洲精选在线观看| 久久av一区二区| 欧美激情综合| 午夜精品一区二区三区四区| 免费观看成人| 国产精品免费看久久久香蕉| 亚洲国产精品女人久久久| 亚洲制服欧美中文字幕中文字幕| 久久亚洲不卡| 一区二区三区精品国产| 久久婷婷国产综合尤物精品| 国产精品每日更新| 亚洲美女视频在线观看| 久久久www成人免费无遮挡大片| 亚洲国产一区二区三区a毛片| 亚洲在线免费观看| 欧美激情精品久久久久久免费印度| 国产精品中文字幕欧美| 日韩视频免费观看高清在线视频| 久久精彩免费视频| 中日韩视频在线观看| 欧美成人免费在线观看| 一区二区三区无毛|