亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

筆試面試中涉及位運算的題目總結(一)

2019-11-10 17:53:26
字體:
來源:轉載
供稿:網友
題目一:

題目描述

有一個正整數,請找出其二進制表示中1的個數相同、且大小最接近的那兩個數。(一個略大,一個略小)

給定正整數int x,請返回一個vector,代表所求的兩個數(小的在前)。保證答案存在。

測試樣例:
2返回:[1,4]題目分析:     對于這道題目,我覺得最重要的就是求一個數的二進制表示中1的個數。關于求一個數的二進制表示中1的個數會有很多種方法:方法1:與1求&運算,依次求出32個比特位中1的個數。(效率較低,無論多大的數,都要循環32次)方法2:平行算法:相鄰的比特位求和,重復這個過程,直到最后只剩下一個位,就是該數的二進制表示中1的個數。方法3:快速法,任何數和比它小1的數做&運算,結果都會比原來的數少一個1,這樣也是可以統計出1的個數。由于這是一種比較快速的方法,所以下面會使用這種辦法來求取1的個數?!咀⒁狻?p>     很多初學者,對于這個問題還會想到模除的辦法,但是模除這個方法,處理正數的時候沒有什么問題,但是處理負數的時候,就不對了,下邊給出測試代碼:

void test(){       int x = -1;       int count = 0;       while (x)       {              if (x % 2 != 0)                     ++count;              x /= 2;       }       cout << count << endl;}

而實際上,-1的二進制表示中含有32個1.所以,這種辦法就是錯誤的。好了,說了這么多,重點還是解決本題。下邊給出本題的實現代碼:實現代碼:
class CloseNumber {public:    int Count(int x)    {        int count = 0;        while (x)        {            ++count;            x = x & (x - 1);        }        return count;    }    vector<int> getCloseNumber(int x) {        // write code here        int countOne = Count(x);        vector<int> ret;        for (int i = x - 1; i > 0; --i)        {            if (Count(i) == countOne)            {                ret.push_back(i);                break;            }           }        for (int i = x + 1; ;++i)        {            if (Count(i) == countOne)            {                ret.push_back(i);                break;            }        }        return ret;    }};題目二:

題目描述

請編寫程序交換一個數的二進制的奇數位和偶數位。(使用越少的指令越好)

給定一個int x,請返回交換后的數int。

測試樣例:
10返回:5題目分析:如果我們可以得到一個數的奇數位和偶數位的值,然后進行交換就可以了。得到奇數位的值和偶數位的值是比較簡單的。奇數位的值:給定數字&0xAAAAAAAA偶數位的值:給定數字&0x55555555交換的方法:奇數位的值右移一位,偶數位的值左移一位,兩者相加,得到結果。代碼實現:
class Exchange {public:    int exchangeOddEven(int x) {        // write code here        int odd = (x & 0xAAAAAAAA);//換取x的奇數位信息        int even = (x & 0x55555555);//偶數位信息        return (odd >> 1) + (even << 1);    }};題目三:

題目描述

有一個介于0和1之間的實數,類型為double,返回它的二進制表示。如果該數字無法精確地用32位以內的二進制表示,返回“Error”。

給定一個double num,表示0到1的實數,請返回一個string,代表該數的二進制表示或者“Error”。

測試樣例:
0.625返回:0.101題目分析:這個題目考查十進制的小于1的正小數轉為二進制數的辦法,這個學過計算機基礎的人都會轉化,就是連乘法,這里就不細說了。特別需要注意的是,浮點數與0進行比較的方法,這個問題,前邊的文章也是總結過的。即就是這個數在無限接近于0的正小數和負小數之間,則就認為是為0.具體請看下邊代碼中的表示方法。代碼實現:
class BinDecimal {public:#define exp pow(10,-7)    string PRintBin(double num) {        // write code here        string ret;        if (num >= 1)            return ret;        int count = 0;        ret.push_back('0');        ret.push_back('.');        while (!(num > -exp && num < exp))        {            num = num * 2;            if (num >= 1.0)            {                ++count;                ret.push_back('1');                num -= 1.0;            }               else            {                ++count;                ret.push_back('0');            }            if (count == 32){              return "Error";            }        }        return ret;    }};【總結】1.浮點數與0進行比較的方法,不可直接比較。2.十進制小數轉換成二進制小數的方法-----連乘法。3.一個數的二進制表示中1的個數。4.如何得到一個數的奇數位和偶數位對應的值---將數字和0xAAAAAAAA按位與,和0x55555555按位與。


上一篇:AOP詳解

下一篇:Murder in Restaurant

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中日韩美女免费视频网站在线观看| 精品国产31久久久久久| 欧美成人免费大片| 日韩精品在线观看视频| 亚洲第一男人天堂| 色婷婷av一区二区三区久久| 久久国内精品一国内精品| 欧美激情一区二区三区高清视频| 成人午夜两性视频| 欧美成人精品在线视频| 中文字幕在线成人| 欧美人与物videos| 亚洲片在线资源| 欧美亚洲日本黄色| 久久人人爽亚洲精品天堂| 福利二区91精品bt7086| 国产午夜精品免费一区二区三区| 欧美网站在线观看| 国产盗摄xxxx视频xxx69| 中文字幕久久久| 午夜精品一区二区三区在线视频| 色多多国产成人永久免费网站| 清纯唯美亚洲激情| 久久久久久久久久久成人| 免费91麻豆精品国产自产在线观看| 日韩中文字幕视频在线观看| 中文字幕无线精品亚洲乱码一区| 国产在线一区二区三区| 亚洲美女免费精品视频在线观看| 欧美在线欧美在线| 国产在线精品播放| 亚洲aⅴ男人的天堂在线观看| 久久久国产在线视频| 欧美乱大交做爰xxxⅹ性3| 一区二区三区国产在线观看| 成人亚洲综合色就1024| 欧美午夜精品久久久久久浪潮| 亚洲美女精品久久| 亚洲精品久久久久中文字幕二区| 91精品久久久久久久久久入口| 久久亚洲综合国产精品99麻豆精品福利| 中文字幕久久久| 日韩欧美国产黄色| 欧美激情一区二区三区久久久| 久久夜色精品亚洲噜噜国产mv| 国产91在线视频| 久热国产精品视频| 精品国产乱码久久久久酒店| 久久国产天堂福利天堂| 成人免费淫片视频软件| 韩国日本不卡在线| 国产亚洲精品久久久久久| 91视频88av| 最近更新的2019中文字幕| 亚洲欧美综合精品久久成人| 韩剧1988在线观看免费完整版| 亚洲国产精品一区二区久| 国产成人精品久久亚洲高清不卡| 国产精品男人的天堂| 精品久久久久久久久中文字幕| 亚洲精品国产免费| 亚洲午夜女主播在线直播| 91影视免费在线观看| 国产精品美女久久久免费| 成人免费看黄网站| 欧美激情欧美激情在线五月| 日韩中文视频免费在线观看| 久久黄色av网站| 欧美激情在线视频二区| 欧美一级视频一区二区| 亚洲成年网站在线观看| 亚洲国产成人精品一区二区| 亚洲第一色在线| 久久亚洲精品国产亚洲老地址| 久久福利网址导航| 欧美性jizz18性欧美| 日韩中文字幕在线看| 欧美人与性动交| 日韩av电影国产| 日韩免费观看高清| 久久精品国产亚洲7777| 国自产精品手机在线观看视频| 日韩av在线免费观看一区| 91精品国产色综合久久不卡98口| 亚洲精品理论电影| 国产97在线|亚洲| 亚洲精品国产精品乱码不99按摩| 亚洲国产天堂久久综合网| 久久精品国产成人精品| 欧美成人午夜激情在线| 亚洲欧美日韩精品久久奇米色影视| 亚洲丝袜av一区| 成人网在线免费看| 国产精品国产三级国产专播精品人| 久久久av免费| 91人成网站www| 久久91亚洲人成电影网站| 5278欧美一区二区三区| 91精品国产高清自在线| 国产精品久久久久久一区二区| 亚洲欧美国产va在线影院| 久久精品国产69国产精品亚洲| 欧美—级a级欧美特级ar全黄| 69久久夜色精品国产7777| 日韩av不卡电影| 国产精品mp4| yw.139尤物在线精品视频| 欧美超级免费视 在线| 国产91色在线|| 欧美亚洲另类激情另类| 欧美猛交ⅹxxx乱大交视频| 中文字幕精品一区久久久久| 午夜精品蜜臀一区二区三区免费| 国产亚洲视频在线| 国产精品久久电影观看| 国产精品草莓在线免费观看| 欧美日韩国产精品一区二区不卡中文| 久久久久久亚洲| 久久影院资源站| 中文欧美日本在线资源| 国产亚洲欧洲高清一区| 狠狠躁夜夜躁人人爽天天天天97| 久久精品夜夜夜夜夜久久| 亚洲成人久久久久| 国产精品手机播放| 亚洲精品资源在线| 久久久久久97| 久久久久www| 欧美午夜www高清视频| 欧美一区在线直播| 亚洲tv在线观看| 欧美人在线视频| 久久在线免费观看视频| 日韩在线免费av| 成人免费直播live| www.亚洲一二| 国产一区二区三区日韩欧美| 成人黄色av播放免费| 欧美性生活大片免费观看网址| 欧美性猛交xxxx| 亚洲一区二区三区四区视频| 日韩欧美在线看| 亚洲a级在线播放观看| 草民午夜欧美限制a级福利片| 91日韩在线播放| 北条麻妃在线一区二区| 亚洲国产精品999| 国产精品美女av| 亚洲成人精品视频在线观看| 亚洲va久久久噜噜噜久久天堂| 亚洲字幕在线观看| 久久久天堂国产精品女人| 亚洲精品小视频在线观看| 国产成人久久久精品一区| 国产欧美精品一区二区三区介绍| 黄色一区二区在线| 国产精品99一区| 欧美理论电影在线观看| 热久久视久久精品18亚洲精品| 亚洲aⅴ日韩av电影在线观看| 午夜剧场成人观在线视频免费观看| 韩日欧美一区二区| 久久色免费在线视频| 亚洲欧美中文日韩在线v日本|