S.l.e!ep.¢%
像打了激速一樣,以四倍的速度運轉,開心的工作
簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
C++博客
::
首頁
::
新隨筆
::
聯系
::
聚合
::
管理
位運算之美——用+,-和位運算實現整數除法和取模(一)
Posted on 2009-09-20 11:13
S.l.e!ep.¢%
閱讀(3600)
評論(3)
編輯
收藏
引用
所屬分類:
Algorithm
位運算之美——用+,-和位運算實現整數除法和取模(一)
??? 今天看了一位師兄去年的筆經總結,其中有一題是“不許用%和/來實現求任意數除以3的余數”,我想考官的目的應該是想考察學生對位運算的熟悉程度吧,于是我把題目擴展成“只能用+,-和位運算實現整數除法(/)和取模(%)”,
注意:這里不能使用其它的庫例程來輔助計算,如log,log10等
。在思考這道題目的過程中,我又涉及到了許多二進制相關的題目,如:
??? 判斷給定的整數是不是2的整數次冪
??? 判斷給定的整數是不是4的整數次冪
??? 求給定整數的二進制表示中1的個數
??? 求給定整數的二進制表示中0的個數
??? 求給定整數的二進制表示中最高位1的位置
??? 求大于等于給定整數的最小的2的整數次冪
??? 求給定整數的二進制表示的有效位數
??? ...
??? 這些題目都是經典老題,頻繁出現于各類筆試面試題中,除了能考察位運算外,還能考察應聘者能否給出創新的算法來更好地解決問題。可以說這些題目都不難,如果使用32位的int來表示整數的話,蠻力法都可以比較好地完成任務,但是如果想盡可能地提高效率,那就需要動一番腦經了。下面給出我對這些問題的整理和C++實現,并在此基礎上給出原題(只能用+,-和位運算實現整數除法(/)和取模(%),下文都稱為原題)的實現。
??? 當然,從某種意義上講,特別是從充分利用底層硬件的計算能力(利用特殊的cpu指令)來看,這些解法肯定不是最優的,希望大俠們多多指點。
??? 還要說明的是,
下面各題的順序是按照我在思考原題時的思維過程來安排的
,在給出原題的實現時會詳細說明。
???
判斷給定的整數是不是2的整數次冪
??? 這應該是最簡單的,利用最高位是1,其后所有位為0的特性,常數時間解決問題:
1
?
//
判斷n是否是2的正整數冪
2
?
inline?
bool
?is_2exp(
unsigned
int
?n)
3
?
{
4
?
????
return
?
!
(n
&
(n
-
1
));
5
?
}
????
求給定整數的二進制表示中1的個數
????考慮到n-1會把n的二進制表示中最低位的1置0并把其后的所有0置1,同時不改變此位置前的所有位,那么n&(n-1)即可消除這個最低位的1。這樣便有了比順序枚舉所有位更快的算法:循環消除最低位的1,循環次數即所求1的個數。此算法的時間復雜度為O(n的二進制表示中的1的個數),最壞情況下的復雜度O(n的二進制表示的總位數)。
?1
//
計算n的二進制表示中1的個數
?2
inline?
int
?count1(
unsigned
int
?n)
?3
{
?4
????
int
?r?
=
?
0
;
?5
????
while
(n)
?6
????
{
?7
????????n?
&=
?n
-
1
;
?8
????????r
++
;
?9
????}
10
????
return
?r;
11
}
??? 既然有了求給定整數的二進制表示中1的個數的辦法,那么想要
求給定整數的二進制表示中0的個數
就很簡單了。事實上,在二進制中,完全可以把0和1看作是對稱的兩個對象,取反操作(~)可以任意的切換這兩個對象,只要先對n進行一次取反,然后再用上述算法即能得到二進制表示中0的個數。首先看下面的代碼:
?1
//
計算n的二進制表示中0的個數
?2
inline?
int
?count0_wrong(
unsigned
int
?n)
?3
{
?4
????
int
?r?
=
?
0
;
?5
????n?
&=
?
~
n;
?6
????
while
(n)
?7
????
{
?8
????????n?
&=
?n
-
1
;
?9
????????r
++
;
10
????}
11
????
return
?r;
12
}
??? 不知大家有沒有看出問題來?是的~操作符會把所有高位的都取反,而不是只把有效位取反,所以我們需要一個能保持高位不變的位取反操作,下面是我的實現,時間復雜度和求二進制表示中1的個數的算法相同,都與二進制表示中1的個數有關:
?1
//
保持高位取反
?2
inline?
unsigned
int
?negate_bits(
unsigned
int
?n)
?3
{
?4
????
if
(n
==
0
)?
return
?
1
;
?5
????
unsigned int
?r
=
0
,?m
=~
n;
?6
????
while
(n)
?7
????
{
?8
????????r?
|=
?(n
^
(n
-
1
))
&
m;
?9
????????n?
&=
?n
-
1
;
10
????}
11
12
????
return
?r;
13
}
??? 有了這個特殊的取反操作,求給定整數的二進制表示中0的個數的辦法就簡單了:
?1
//
計算n的二進制表示中0的個數
?2
inline?
int
?count0(?unsigned?
int
?n)
?3
{
?4
????
int
?r?
=
?
0
;
?5
????n?
=
?negate_bits(n);
?6
????
while
(n)
?7
????
{
?8
????????n?
&=
?n
-
1
;
?9
????????r
++
;
10
????}
11
????
return
?r;
12
}
??? 看到這里,聰明的讀者肯定看出問題來了,其實我干了一件很蠢的事情。看看上述算法的時間復雜度,negate_bits花了O(n的二進制表示中
1
的個數),while循環計算取反后的n的二進制表示中1的個數,事實上就是O(n的二進制表示中
0
的個數),兩部分加起來其實就是二進制表示總的有效位數,換句話說,這個算法是線性的,而事實上,我們完全可以先線性地求出這個總的有效位數,然后減去1的位數,即得到0的位數,根本不用費那么大勁去整個保持高位的取反操作,兩者的時間復雜度在漸進意義上也是相同的。所以,我犯傻了,但是這里又引出另一個問題:
????
求給定整數的二進制表示的有效位數
???
上面提到了線性地求這個位數(下文記為m),即“循環右移1位,記錄右移次數”,時間復雜度O(m)。但是我想,一看到這個題目,所有人的第一反應應該是
floor(log
2
(n))+1
吧,但是請注意,本文在一開始就規定了
“不能使用庫例程”
,那么在這個限制下該怎么做呢?有沒有比線性時間更好的算法呢?其實到目前為止我也沒有什么特別好的算法,希望誰有什么精妙的算法能指點一下,不要打我。。。
?1
//
求給定整數的二進制表示的位數,線性算法
?2
int
?count_bit_1(
unsigned
int
?n)
?3
{
?4
????
int
?r?
=
?
0
;
?5
????
while
(n)
?6
????
{
?7
????????n
>>=
1
;
?8
????????r
++
;
?9
????}
10
????
return
?r;
11
}
:???
求大于等于給定整數的最小的2的整數次冪
????首先是最簡單的思路:求出n的二進制表示的總位數m,于是1<<m即為所求值,當然這里要排除n自身就是2的整數次冪的情況,復雜度O(m),實現如下:
?1
//
求大于等于n的最小的2的正整數冪,方法1
?2
//
時間復雜度O(n的二進制位長度)
?3
unsigned int
?high_2exp_1(
unsigned
int
?n)
?4
{
?5
????
if
(n
<=
1
)?
return
?
1
;
?6
????
if
(is_2exp(n))?
return
?n;
?7
?8
????
unsigned
int
?r?
=
?
1
;
?9
????
while
(n)
10
????
{
11
????????n?
>>=
?
1
;
12
????????r?
<<=
?
1
;
13
????}
14
15
????
return
?r;
16
}
??? 事實上這就涉及到上面求二進制表示位數的問題,所以
目前為止
在此基礎上的算法都是線性時間的。???
??? 那有沒有不用計算位數m,從而效率更好的算法呢,能不能像在計算二進制表示中1的個數時那樣根據1的個數來設計算法呢?回到那一題中,“n-1會把n的二進制表示中最低位的1置0并把其后的所有0置1”,那么n|=n-1就把n的二進制表示中最低位1后的所有0置1,再加上1,那么就把最低位1左移了一位。于是,便有了更好的算法:循環左移最低位的1,直到n是2的整數次冪。該算法跟二進制表示中的1個數和位置有關,最壞時間復雜度還是O(二進制表示位數),但是比起上一個實現,這個算法在多數情況下都比上一個算法快。實現如下:
?1
//
求大于等于n的最小的2的正整數冪,方法2
?2
//
計算時間與n的二進制表示中1的個數和位置有關,比方法1效率高
?3
//
最壞情況下的時間復雜度與方法1相同
?4
unsigned
int
?high_2exp_2(
unsigned
int
?n)
?5
{
?6
????
if
(n
<=
1
)?
return
?
1
;
?7
?8
????
while
(
!
is_2exp(n))
?9
????
{
10
????????n?
|=
?n
-
1
;
11
????????n
++
;
12
????}
13
14
????
return
?n;
15
}
????
??? 最后來一個簡單的擴充題目:
??? 判斷給定的整數是不是4的整數次冪
????觀察4的整數次冪的特征,容易發現除了滿足n&(n-1)==0外,唯一的1位后的0的個數是偶數,這從4
x
=2
2k
也能簡單地得到。這就很直觀地衍生出一個簡單的算法:
?1
//
判斷n是否是4的整數次冪
?2
bool
?is_4exp(unsigned?
int
?n)
?3
{
?4
????
if
(
!
is_2exp(n))?
return
?
false
;
?5
?6
????
int
?bit_len?
=
?count_bit_1(n)
-
1
;
//
線性時間求二進制位數
?7
????
if
((bit_len
&
0x1
)
!=
1
)
?8
????????
return
?
true
;
?9
????
else
10
????????
return
?
false
;
11
}
????算法很直觀,但是比起is_2exp的常數時間is_4exp的線性時間總讓我覺得不能接受,不過無奈還是沒有想出好辦法來,哎。。。求大牛指點啊
??? 說明:寫這篇文章,已經三次丟失全文了,把我快搞瘋了,firefox下好像有點問題,先把文章發上來,過會兒換到IE下繼續。。。
??? 再說明:換了IE后就沒再出問題了,不過寫著寫著發現寫了好久,先歇會兒,得看書補習功課了
??? 最后的說明:下次會基于上面的內容,給本文最初提出的問題(只能用+,-和位運算實現整數除法(/)和取模(%))的實現
Feedback
#
re: 位運算之美——用+,-和位運算實現整數除法和取模(一)
回復
更多評論
2010-10-25 10:20 by
yu
無意中逛到這里,驚喜之。
#
re: 位運算之美——用+,-和位運算實現整數除法和取模(一)
回復
更多評論
2010-11-18 16:06 by
zl
最后的說明:下次會基于上面的內容,給本文最初提出的問題(只能用+,-和位運算實現整數除法(/)和取模(%))的實現
在那里?
#
re: 位運算之美——用+,-和位運算實現整數除法和取模(一)
回復
更多評論
2011-09-25 12:03 by
skyworm
n &= ~n; // 寫錯啦,這個操作之后,n就永遠等于0了。
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
相關文章:
TEA算法在QQ中的應用
Code01
c++MD5加密類
羅馬計數法
位運算之美——用+,-和位運算實現整數除法和取模(一)
Int2Hex
n個數中有且僅有一個數出現了奇數次
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Powered by:
C++博客
Copyright © S.l.e!ep.¢%
日歷
<
2015年1月
>
日
一
二
三
四
五
六
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
公告
mail: sleepwom@163.com (每月一看)
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
(5)
給我留言
查看公開留言
查看私人留言
隨筆分類
(1107)
A·M·F·3(9)
Algorithm (8)
Axis(3)
Book(1)
C++(89)
COM(27)
Crack(39)
CURL(3)
Data Struct(1)
DataBase(14)
Delphi(1)
Design Pattern(11)
DirectUI(14)
DLL(2)
DOS(32)
emule
Encryption (4)
English(7)
epoll(8)
FastDB(10)
Finance(1)
Flash(9)
Game(8)
Game Design(1)
gdb(5)
GFW(1)
Haker
hardware
HTML(39)
ICE(8)
IE_BHO(1)
IM(2)
Inside Windows(2)
InstallShield (7)
Interview(12)
IOCP(19)
Lua(14)
Management(10)
Math(2)
Media(2)
Medical science(1)
MongoDB(4)
MSXML(1)
MulThreads(10)
NetWork(8)
Office Automation(5)
OpenSSL(13)
Oracle(1)
Other(61)
P2P(3)
PE(10)
Plan
ProjectSummary(4)
python(3)
Reactos(1)
Regular expression(2)
Reverse Engineering(5)
RootKit(116)
sed(1)
Server Program(3)
Shell(12)
Skynet(6)
SOAP(5)
SQLite(2)
SSL(3)
STL(3)
System Safe(1)
Team(9)
test(26)
TortoiseSVN(2)
UAC(3)
Unix(89)
Unknown(5)
VB(1)
VBScript(2)
VC(124)
Video Processing(1)
WIN7 + VC(3)
WinDbg(38)
Windows(13)
Windows WDM(61)
Windows扎記(1)
WTL(1)
yacc(3)
Z.E.R.O.M.Q(1)
生活常識(1)
網絡協議(2)
系統低層(11)
隨筆檔案
(1098)
2015年1月 (1)
2014年12月 (9)
2014年11月 (18)
2014年6月 (1)
2014年4月 (2)
2013年9月 (1)
2013年5月 (10)
2012年7月 (3)
2012年4月 (2)
2012年3月 (8)
2012年2月 (6)
2012年1月 (13)
2011年12月 (2)
2011年11月 (3)
2011年10月 (5)
2011年8月 (3)
2011年7月 (8)
2011年6月 (6)
2011年5月 (12)
2011年4月 (28)
2011年3月 (15)
2011年2月 (10)
2011年1月 (16)
2010年12月 (21)
2010年11月 (16)
2010年10月 (6)
2010年9月 (17)
2010年8月 (19)
2010年7月 (25)
2010年6月 (21)
2010年5月 (38)
2010年4月 (10)
2010年3月 (24)
2010年2月 (58)
2010年1月 (78)
2009年12月 (29)
2009年11月 (35)
2009年10月 (152)
2009年9月 (130)
2009年8月 (24)
2009年7月 (2)
2009年6月 (4)
2009年5月 (14)
2009年4月 (31)
2009年3月 (24)
2009年2月 (30)
2009年1月 (45)
2008年12月 (24)
2008年11月 (23)
2008年10月 (16)
文章檔案
(1)
2009年2月 (1)
相冊
SimpleWord
隨筆
收藏夾
(3)
Operation System(3)
Other
DataStruct
數據結構
數據結構
搜索
積分與排名
積分 - 1254659
排名 - 10
最新評論
1.?re: linux信號Linux下Signal信號太詳細了,終于找到了
寫的不錯。
--zsx
2.?re: 匯編中的test和cmp比較
666666666
--xx
3.?re: linux信號Linux下Signal信號太詳細了,終于找到了
這篇文章就是個垃圾
--11
4.?re: CreateService加載驅動過程
可以在內核太下直接調用這些函數來加載嗎?
--peace
5.?re: 在VC中徹底玩轉Excel
怎樣能夠提高讀寫速度
--Touch
6.?re: 函數開始處的MOV EDI, EDI的作用收藏
不錯,謝謝分享。
--abc
7.?re: gcc g++ 4.7 安裝淚奔記(續)
最新已經到4.9.2了,還是用Archlinux好。。
--bigeast
8.?re: ./lua/addtest.lua:9: attempt to index local 'testobj' (a userdata value)
c++對象導到lua之后成為了一個“userdata ”,原來上面的成員、方法都會訪問不了的,只是一個普通的內存塊,如果想用,要把方法也倒到Lua。
--陳冠希
9.?re: 關于NoSQL,你必須知道的九件事
說的玄而又玄
--cpper
10.?re: ./lua/addtest.lua:9: attempt to index local 'testobj' (a userdata value)
lua_touserdata() 不會改變堆棧
--網絡兼職
11.?re: lua中的closure
這不就是閉包嘛,沒啥稀奇的吧。javascript也有 很多腳本語言都有
--evilwk
12.?re: lua中的closure
lua有專有名詞,叫upvalue
--Quon Lu
13.?re: lua函數中的"匿名變量"?
_是用作占位符,表示參數不會使用
有時候函數調用者傳入了多個參數,函數用不到的參數,可以用_占位
主要多見于一些回調函數
--Clear
14.?re: lua函數中的"匿名變量"?
只是傳遞可變參數而已,這兩個例子是結合演示可變參數吧
--南宮臨風
15.?re: lua函數中的"匿名變量"?[未登錄]
占兩個位置,意圖何在?
--jcily
16.?re: IOCP的一個簡單封裝類(zz) [轉]
例子不能運行
--dsa
17.?re: Flash CS3動作面板打開出錯[Java運行時環境初始化時出現錯誤,你可能需要重...
不過我已經有java環境了,為什么還是需要安裝呢?而且我想你說的那樣做,只有900KB而已啊!怎么回事?
--Echo____g
18.?re: The secret life of GetWindowText
評論內容較長,點擊標題查看
--allen
19.?re: Lua學習筆記
ECCDDFC08D2AE6DCD26DB8B09AE0F6264DFDA306
--xiaoxiao
20.?re: 實用命令:利用openssl進行BASE64編碼解碼、md5/sha1摘要、AES/DES3加密解密 收藏
66F053665DF4F26C7CAA2DE22FBD1B51
--xiaoxiao
21.?re: 虛擬鍵盤(軟鍵盤)設計要點
博主 有個小bug不知道該怎么改
當點擊完某個鍵的時候 時不時會出現 該鍵還遺留按下去的藍色 回不到原本顏色
是和頁面的刷新快慢有關嗎?
非常感謝
--red
22.?re: 虛擬鍵盤(軟鍵盤)設計要點
非常感謝博主!正好要開發軟鍵盤
--red
23.?re: C語言中實現不同函數間jump的方法[未登錄]
__asm{push 0}
替換為
_alloca(4)
--cpp
24.?re: QQ2009 界面技術(DirectUI)
評論內容較長,點擊標題查看
--xiaozhi_5638
25.?re: sqlite 日期比較.取大于現在時間的記錄
評論內容較長,點擊標題查看
--威風
26.?re: yacc學習筆記(1) 2013.05.11
《flex 與 bison(中文版)》
--coreBugZJ
27.?re: yacc學習筆記(1) 2013.05.11
學習一下
--seahouse
28.?re: Coroutines in C
mark
--zgpxgame
29.?re: 突發奇想 之 遠程調用
wcf
--三斷笛
30.?re: 突發奇想 之 遠程調用
rpc
--Richard Wei
31.?re: 突發奇想 之 遠程調用
函數式編程,參考一下jquery的數據請求。
--漂漂
32.?re: 突發奇想 之 遠程調用
樓上的,我看了,系統API都有現成的,灰常不錯,我喜歡.
--S.l.e!ep.¢%
33.?re: 突發奇想 之 遠程調用
樓主可以試試協程
--會飛的導彈豬
34.?re: 突發奇想 之 遠程調用
Lambda 表達式 可以緩解 用起來感覺不錯的
--Lo
35.?re: 用XML存儲數據的缺陷,優勢
@是大法官
頂~~~~~~~~
--幻想
36.?re: P處理的雙進程守護
評論內容較長,點擊標題查看
--幻想
37.?re: Windows下刪除.svn文件夾的最簡易方法
這想法好,每次explorer刷新一次都會去做一次,又學到了
--幻想
38.?re: OPENSSL 生成 CERT 參考
REQ_DEPT_NAME 等 這些定義在哪? 最好把頭文件都給列出來。謝謝!
--呂文華
39.?re: DirectUI For WebBrowser
怎么解決IOleInPlaceSiteWindowless::InvalidateRect()無響應的?
--bluesky
40.?re: 怎么讓Firefox支持ActiveX控件
在 new ActiveXObject 在IE中可以發現在火狐中用什么來代替啊
--陳彥鑫
閱讀排行榜
1.?linux信號Linux下Signal信號太詳細了,終于找到了(45147)
2.?實用命令:利用openssl進行BASE64編碼解碼、md5/sha1摘要、AES/DES3加密解密 收藏 (8728)
3.?匯編中的test和cmp比較(8607)
4.?[轉] DirectUI的初步分析(7918)
5.?如何用WinDbg定位內存泄露? (6773)
6.?調用OPENSSL讀取PEM文件的靈異問題(6755)
7.?如何區分虛擬網卡與物理網卡(6707)
8.?在主線程中慎用WaitForSingleObject (WaitForMultipleObjects) (轉)(6321)
9.?在VC中徹底玩轉Excel(6308)
10.?vc2005的詭異錯誤“Windows has triggered a breakpoint in .exe.”(6265)
11.?./lua/addtest.lua:9: attempt to index local 'testobj' (a userdata value)(6264)
12.?sqlite 日期比較.取大于現在時間的記錄(6262)
13.?Linux遭遇Segmentation fault(6021)
14.?今天發現 EnterCriticalSection 里頭還是調用了 WaitForSingleObject(5905)
15.?在vs2008中添加include文件和lib文件(5790)
16.?shell bash模擬二維數組(5761)
17.?DLL Inject -- 一、Windows 鉤子(Hooks) - (1)(5696)
18.?靜態代碼分析工具匯總(5561)
19.?lua動態鏈接庫(luaopen_*函數的使用)(5504)
20.?[轉載]最好的53個 VC++ /MFC 開源軟件項目(5457)
21.?VC 操作 MDB 文件類(5403)
22.?WSARecv 函數(5369)
23.?gcc g++ 4.7 安裝淚奔記.(5328)
24.?HOOK鉤子機制學習筆記(4) - 鉤子函數說明 收藏 (5237)
25.?關于TCP丟包,斷開的疑問(4976)
26.?[轉]VC++UDP實現可靠傳輸(文件)(虛擬TCP)((4960)
27.?curl應用總結(一)(4861)
28.?c和c++中取任意對數的簡單方法(4845)
29.?【轉】如何高效產生m個n范圍內的不重復隨機數(m<=n)(4745)
30.?lua動態鏈接庫之單個so文件包含多個模塊(luaL_requiref函數的使用) (4623)
31.?http協議 文件下載原理詳解(4511)
32.?反調試技巧總結-原理和實現(4469)
33.?set、vector、list和deque 順序容器(4294)
34.?xp下使用vista音量合成器(4280)
35.?如何合并兩個vector?(4208)
36.?std::tr1::shared_ptr 使用的一點體會 (4069)
37.?編碼規范(4053)
38.?CMake安裝(3992)
39.?實現Sock5代理(轉)(3983)
40.?X.509 數字證書結構和實例 (3874)
評論排行榜
1.?工作兩年后的總結(17)
2.?[轉載]最好的53個 VC++ /MFC 開源軟件項目(12)
3.?VMware虛擬機出現Reason: Failed to lock the file(轉)(9)
4.?實現了一個寫LOG類(9)
5.?封裝了IOCP(8)
6.?Thread Class(7)
7.?2009的計劃(7)
8.?Visual C++ 6 令我很暈(6)
9.?突發奇想 之 遠程調用(6)
10.?SimpleWord界面初稿3(5)
11.?Simple Word界面初稿2(5)
12.?內存崩潰的BUG (2) (5)
13.?虛擬鍵盤(軟鍵盤)設計要點 (5)
14.?內存崩潰的BUG (4) 完成端口的問題? 程序的BUG?(4)
15.?內存崩潰 CASE 3(4)
16.?今天發現 EnterCriticalSection 里頭還是調用了 WaitForSingleObject(4)
17.?為了生成flash文件方便,寫了個工具(4)
18.?代碼壞味3(4)
19.?技術團隊管理(一)(4)
20.?復雜的邏輯的BUG(4)
21.?單元測試工具在 MF C編程 中的使用問題 [轉] (花了錢在網上下載的一篇文章,郁悶)(4)
22.?在主線程中慎用WaitForSingleObject (WaitForMultipleObjects) (轉)(4)
23.?使用cppunit做c++單元測試(3)
24.?代碼的壞味2(3)
25.?代碼的壞味(3)
26.?關于TCP丟包,斷開的疑問(3)
27.?位運算之美——用+,-和位運算實現整數除法和取模(一) (3)
28.?內存崩潰的BUG (3) (3)
29.?也談 設計模式之Observer模式 (3)
30.?MsgWaitForMultipleObjects 后遺癥(3)
31.?86 Line 線程封裝類 only for Win32(3)
32.?QQ2009 界面技術(DirectUI) (3)
33.?寫了個雙向鏈表(3)
34.?DLL Inject -- 一、Windows 鉤子(Hooks) - (1)(3)
35.?突發的 XX Encoding(3)
36.?CxImage類庫(3)
37.?lua函數中的"匿名變量"?(3)
38.?lua中的closure(2)
39.?./lua/addtest.lua:9: attempt to index local 'testobj' (a userdata value)(2)
40.?yacc學習筆記(1) 2013.05.11(2)
国内精品久久久久久野外
|
久久人人爽人人爽人人片AV麻豆
|
国产香蕉97碰碰久久人人
|
亚洲午夜久久久久久久久久
|
日韩AV毛片精品久久久
|
久久免费大片
|
久久有码中文字幕
|
免费精品久久久久久中文字幕
|
久久精品成人欧美大片
|
狠狠精品干练久久久无码中文字幕
|
国产91色综合久久免费
|
99久久综合狠狠综合久久止
|
91精品国产综合久久婷婷
|
欧美伊香蕉久久综合类网站
|
亚洲国产精品热久久
|
国产精品成人久久久久久久
|
国产综合成人久久大片91
|
久久噜噜久久久精品66
|
久久无码高潮喷水
|
国内精品久久久久
|
精品久久久久久无码国产
|
成人综合久久精品色婷婷
|
久久久久久精品久久久久
|
色欲综合久久躁天天躁
|
一本色道久久综合
|
久久久亚洲欧洲日产国码二区
|
久久99国内精品自在现线
|
国产精品美女久久久免费
|
7777精品伊人久久久大香线蕉
|
久久久久亚洲AV成人片
|
伊人久久精品线影院
|
思思久久精品在热线热
|
精品久久777
|
漂亮人妻被中出中文字幕久久
|
久久精品无码一区二区无码
|
国产高潮国产高潮久久久91
|
亚洲精品国产字幕久久不卡
|
国产午夜精品久久久久九九电影
|
久久人人爽人人爽人人片AV高清
|
26uuu久久五月天
|
久久无码AV一区二区三区
|