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

首頁 > 編程 > C# > 正文

c#二進制逆序方法詳解

2020-01-24 03:08:09
字體:
來源:轉載
供稿:網友

原題

一個整數,可以表示為二進制的形式,請給出盡可能多的方法對二進制進行逆序操作。 例如:10000110 11011000的逆序為 00011011 01100001

分析

題目中說是一個整數,對它的二進制進行逆序。并不是一個01字符串,或者01的數組。那么我們該如何解決這個問題呢?方法還是比較多的,有的中規中矩、有的非常巧妙。我們要掌握中規中規的方法,見識更多的巧妙的方法。慢慢的,能夠舉一反三,在遇到新的問題時,能夠有靈思妙想。

最直接的方法

直接的方法,很容易想到:有如下代碼:

復制代碼 代碼如下:

直接的方法,很容易想到:有如下代碼: int v = 111;
int r = v;
int s = 32;
for (; 0 != v; v >>= 1) {
    r <<= 1;
    r |= v & 1;
    s--;
}
r <<= s;
System.out.println(r);

代碼比較好理解,取到v的最低位,作為r的最高位;v每取一次最低位,則右移一位;r每確定一位,則左移一位。同時記錄移動了多少位,最終要補齊。

通過查表的方法

在遇到位操作的問題時,往往題目中限定了總的位數,比如這個題目,我們可以認為32位。這就給我們帶來了一個以空間換時間的解決思路:查表法。位數是固定的,可以申請空間,存儲預先計算好的結果,在計算其他的結果的時候,則查表即可。

32位相對于查表來講,還是太大了。既然這樣縮小范圍,32個bit,也就是4個byte。每個byte 8bit,可以表示0-255的整數。可以通過申請256大小的數組,保存這256個整數,二進制逆序之后的整數。然后將一個32位的整數,劃分為4個byte,每一個byte查表得到逆序的整數:r1,r2,r3,r4。按照r4r3r2r1順序拼接二進制得到的結果就是最終的答案。

這是一個思路,大家可以進一步思考,嘗試。

巧妙的方法

我們這里主要分析這個巧妙的方法,核心思想是:分治法。即:

•逆序32位分解為兩個逆序16位的
•逆序16位分解為兩個逆序8位的
•逆序8位分解為兩個逆序4位的
•逆序4位分解為兩個逆序2位的
最后一個2位的逆序,直接交換即可。也就是分治遞歸的終止條件。但是,在上面的過程中,還沒有應用到位操作的技巧。根據動態規劃的思想,我們可以自底向上的解決這個問題:

•每2位為一組,進行交換,完成2位逆序
•每4位為一組,前面2位與后面2位交換,完成4位逆序
•每8位為一組,前面4位和后面4為交換,完成8位的逆序
•每16位為一組,前面8位和后面8位交換,完成16位的逆序
2組16位的交換,完成32位的逆序

通過下面的例子,詳解上面的過程,我們以16位為例:10000110 11011000

1000011011011000
0100100111100100
0001011010110001
0110000100011011
0001101101100001

經過4步,逆序完成。推而廣之,總的時間復雜度為O(logn),n是二進制的位數。這個方法可以推廣到任意位。

示例代碼如下:

int v =111;
v =((v >>1)&0x55555555)|((v &0x55555555)<<1);
v =((v >>2)&0x33333333)|((v &0x33333333)<<2);
v =((v >>4)&0x0F0F0F0F)|((v &0x0F0F0F0F)<<4);
v =((v >>8)&0x00FF00FF)|((v &0x00FF00FF)<<8);
v =( v >>16)|( v <<16);System.out.println(v);上面的思路理解了,代碼不難理解。例如第二行,前邊是取偶數位,后面是取奇數位,奇數位左移一位,偶數位右移一位,再取或,就是交換了奇數偶數位。也就是第一個步驟。

基于位運算的一些巧妙的方法有很多。大家可以自行研究,后面會和大家分享更多的面試題目。

【分析完畢】

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成人一区在线| 欧美尤物巨大精品爽| 国精产品一区一区三区有限在线| 欧美噜噜久久久xxx| 国产精品免费一区豆花| 91综合免费在线| 亚洲电影成人av99爱色| 亚洲男人天堂网站| 日韩精品在线观看一区| 亚洲欧美制服另类日韩| 美女精品视频一区| 久久夜精品va视频免费观看| 日韩欧美一区二区在线| 日韩免费av片在线观看| 久久久久久久久久久网站| 欧美日韩ab片| 久久艳片www.17c.com| 成人免费看吃奶视频网站| 国产精品成人免费视频| 色噜噜久久综合伊人一本| 欧美激情在线观看视频| 欧洲一区二区视频| 亚洲精品在线看| 亚洲精品videossex少妇| 91wwwcom在线观看| 欧美性xxxxx极品娇小| 97香蕉超级碰碰久久免费软件| 97成人精品视频在线观看| 91av在线影院| 亚洲va欧美va国产综合剧情| 中文字幕日韩av电影| 精品二区三区线观看| 欧美午夜精品伦理| 日韩在线观看免费全集电视剧网站| 国产精品欧美激情在线播放| 伦理中文字幕亚洲| 欧美一级大片视频| 午夜精品视频网站| 亚洲精品成人久久| 91av视频导航| 91夜夜揉人人捏人人添红杏| 69av在线视频| 国产精品欧美久久久| 亚洲黄色www| 国产精品成人aaaaa网站| 91国偷自产一区二区三区的观看方式| 精品久久久在线观看| 91热福利电影| 欧美激情成人在线视频| 成人情趣片在线观看免费| 国产精品户外野外| 成人精品一区二区三区| 成人黄在线观看| yellow中文字幕久久| 欧美成人精品xxx| 国产精品久久久久久久美男| 亚洲精品www| 国产精品1234| 国产精品扒开腿做爽爽爽的视频| 国产99久久精品一区二区 夜夜躁日日躁| 91系列在线播放| 色噜噜亚洲精品中文字幕| 久久久久免费精品国产| 国产美女主播一区| 欧美性生活大片免费观看网址| 色哟哟入口国产精品| 欧美日韩激情小视频| 成人a免费视频| 国产精品天天狠天天看| 日韩欧美999| 亚洲一区av在线播放| 亚洲人成在线观看网站高清| 欧美激情第6页| 九九精品在线观看| 日本精品va在线观看| 久久夜色精品亚洲噜噜国产mv| 91免费电影网站| 久久伊人精品视频| 96精品久久久久中文字幕| 欧美成人精品不卡视频在线观看| 国产精品久久9| 日韩美女主播视频| 国产91色在线免费| 欧美夫妻性生活视频| 国产成人精品网站| 国产欧美欧洲在线观看| 91久久久久久久久久久久久| 久热精品在线视频| 91精品国产自产在线观看永久| 久久久久999| 国产福利视频一区| 国产成人福利夜色影视| 久久精品国产免费观看| 亚洲一级片在线看| 91精品久久久久久久久久久久久| 中文字幕亚洲综合久久筱田步美| 97在线视频免费观看| 日韩网站免费观看高清| 色av吧综合网| 97超碰国产精品女人人人爽| 成人妇女免费播放久久久| 亚洲欧美激情精品一区二区| 日韩一区二区精品视频| 午夜精品理论片| 蜜臀久久99精品久久久无需会员| 国产亚洲精品日韩| 久久久91精品国产| 久久视频在线看| 色青青草原桃花久久综合| 成人久久一区二区三区| 国产深夜精品福利| 欧美国产中文字幕| 国产自产女人91一区在线观看| 精品亚洲va在线va天堂资源站| 奇米影视亚洲狠狠色| 国产精品久久久| 亚洲精品免费在线视频| 不用播放器成人网| 日韩在线观看视频免费| 中文字幕亚洲在线| 欧美成人中文字幕| 中文字幕欧美日韩在线| 国a精品视频大全| 久久精品国产v日韩v亚洲| 久久6免费高清热精品| 亚洲视频国产视频| 亚洲精品永久免费| 国产精品美女www爽爽爽视频| 欧美精品www在线观看| 韩剧1988免费观看全集| 成人久久久久久| 日韩高清免费在线| 精品亚洲一区二区三区在线播放| 国产精品久久一区主播| 亚洲丁香久久久| 国产视频自拍一区| 久久噜噜噜精品国产亚洲综合| 日韩av日韩在线观看| 亚洲aⅴ男人的天堂在线观看| 人九九综合九九宗合| 亚洲国产精品成人av| 欧美电影在线免费观看网站| 黄色精品在线看| 欧美在线视频导航| 日韩国产精品亚洲а∨天堂免| 国产精品高潮呻吟久久av黑人| 中文字幕av一区| 91精品国产乱码久久久久久蜜臀| 欧美另类极品videosbest最新版本| 另类专区欧美制服同性| 精品国产户外野外| 91高清免费视频| 国产精品视频网址| 亚洲福利在线看| 精品国产自在精品国产浪潮| 精品国产乱码久久久久久虫虫漫画| 国产精品男人爽免费视频1| 欧美国产日韩一区二区在线观看| 国产a∨精品一区二区三区不卡| 久久人人爽国产| 日韩中文字幕视频在线| 国产日韩精品电影| 欧美激情在线一区| 亚洲成av人影院在线观看|