S.l.e!ep.¢%
像打了激速一樣,以四倍的速度運轉(zhuǎn),開心的工作
簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
C++博客
::
首頁
::
新隨筆
::
聯(lián)系
::
聚合
::
管理
位運算之美——用+,-和位運算實現(xiàn)整數(shù)除法和取模(一)
Posted on 2009-09-20 11:13
S.l.e!ep.¢%
閱讀(3611)
評論(3)
編輯
收藏
引用
所屬分類:
Algorithm
位運算之美——用+,-和位運算實現(xiàn)整數(shù)除法和取模(一)
??? 今天看了一位師兄去年的筆經(jīng)總結(jié),其中有一題是“不許用%和/來實現(xiàn)求任意數(shù)除以3的余數(shù)”,我想考官的目的應(yīng)該是想考察學(xué)生對位運算的熟悉程度吧,于是我把題目擴展成“只能用+,-和位運算實現(xiàn)整數(shù)除法(/)和取模(%)”,
注意:這里不能使用其它的庫例程來輔助計算,如log,log10等
。在思考這道題目的過程中,我又涉及到了許多二進(jìn)制相關(guān)的題目,如:
??? 判斷給定的整數(shù)是不是2的整數(shù)次冪
??? 判斷給定的整數(shù)是不是4的整數(shù)次冪
??? 求給定整數(shù)的二進(jìn)制表示中1的個數(shù)
??? 求給定整數(shù)的二進(jìn)制表示中0的個數(shù)
??? 求給定整數(shù)的二進(jìn)制表示中最高位1的位置
??? 求大于等于給定整數(shù)的最小的2的整數(shù)次冪
??? 求給定整數(shù)的二進(jìn)制表示的有效位數(shù)
??? ...
??? 這些題目都是經(jīng)典老題,頻繁出現(xiàn)于各類筆試面試題中,除了能考察位運算外,還能考察應(yīng)聘者能否給出創(chuàng)新的算法來更好地解決問題。可以說這些題目都不難,如果使用32位的int來表示整數(shù)的話,蠻力法都可以比較好地完成任務(wù),但是如果想盡可能地提高效率,那就需要動一番腦經(jīng)了。下面給出我對這些問題的整理和C++實現(xiàn),并在此基礎(chǔ)上給出原題(只能用+,-和位運算實現(xiàn)整數(shù)除法(/)和取模(%),下文都稱為原題)的實現(xiàn)。
??? 當(dāng)然,從某種意義上講,特別是從充分利用底層硬件的計算能力(利用特殊的cpu指令)來看,這些解法肯定不是最優(yōu)的,希望大俠們多多指點。
??? 還要說明的是,
下面各題的順序是按照我在思考原題時的思維過程來安排的
,在給出原題的實現(xiàn)時會詳細(xì)說明。
???
判斷給定的整數(shù)是不是2的整數(shù)次冪
??? 這應(yīng)該是最簡單的,利用最高位是1,其后所有位為0的特性,常數(shù)時間解決問題:
1
?
//
判斷n是否是2的正整數(shù)冪
2
?
inline?
bool
?is_2exp(
unsigned
int
?n)
3
?
{
4
?
????
return
?
!
(n
&
(n
-
1
));
5
?
}
????
求給定整數(shù)的二進(jìn)制表示中1的個數(shù)
????考慮到n-1會把n的二進(jìn)制表示中最低位的1置0并把其后的所有0置1,同時不改變此位置前的所有位,那么n&(n-1)即可消除這個最低位的1。這樣便有了比順序枚舉所有位更快的算法:循環(huán)消除最低位的1,循環(huán)次數(shù)即所求1的個數(shù)。此算法的時間復(fù)雜度為O(n的二進(jìn)制表示中的1的個數(shù)),最壞情況下的復(fù)雜度O(n的二進(jìn)制表示的總位數(shù))。
?1
//
計算n的二進(jìn)制表示中1的個數(shù)
?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
}
??? 既然有了求給定整數(shù)的二進(jìn)制表示中1的個數(shù)的辦法,那么想要
求給定整數(shù)的二進(jìn)制表示中0的個數(shù)
就很簡單了。事實上,在二進(jìn)制中,完全可以把0和1看作是對稱的兩個對象,取反操作(~)可以任意的切換這兩個對象,只要先對n進(jìn)行一次取反,然后再用上述算法即能得到二進(jìn)制表示中0的個數(shù)。首先看下面的代碼:
?1
//
計算n的二進(jìn)制表示中0的個數(shù)
?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
}
??? 不知大家有沒有看出問題來?是的~操作符會把所有高位的都取反,而不是只把有效位取反,所以我們需要一個能保持高位不變的位取反操作,下面是我的實現(xiàn),時間復(fù)雜度和求二進(jìn)制表示中1的個數(shù)的算法相同,都與二進(jìn)制表示中1的個數(shù)有關(guān):
?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
}
??? 有了這個特殊的取反操作,求給定整數(shù)的二進(jìn)制表示中0的個數(shù)的辦法就簡單了:
?1
//
計算n的二進(jìn)制表示中0的個數(shù)
?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
}
??? 看到這里,聰明的讀者肯定看出問題來了,其實我干了一件很蠢的事情。看看上述算法的時間復(fù)雜度,negate_bits花了O(n的二進(jìn)制表示中
1
的個數(shù)),while循環(huán)計算取反后的n的二進(jìn)制表示中1的個數(shù),事實上就是O(n的二進(jìn)制表示中
0
的個數(shù)),兩部分加起來其實就是二進(jìn)制表示總的有效位數(shù),換句話說,這個算法是線性的,而事實上,我們完全可以先線性地求出這個總的有效位數(shù),然后減去1的位數(shù),即得到0的位數(shù),根本不用費那么大勁去整個保持高位的取反操作,兩者的時間復(fù)雜度在漸進(jìn)意義上也是相同的。所以,我犯傻了,但是這里又引出另一個問題:
????
求給定整數(shù)的二進(jìn)制表示的有效位數(shù)
???
上面提到了線性地求這個位數(shù)(下文記為m),即“循環(huán)右移1位,記錄右移次數(shù)”,時間復(fù)雜度O(m)。但是我想,一看到這個題目,所有人的第一反應(yīng)應(yīng)該是
floor(log
2
(n))+1
吧,但是請注意,本文在一開始就規(guī)定了
“不能使用庫例程”
,那么在這個限制下該怎么做呢?有沒有比線性時間更好的算法呢?其實到目前為止我也沒有什么特別好的算法,希望誰有什么精妙的算法能指點一下,不要打我。。。
?1
//
求給定整數(shù)的二進(jìn)制表示的位數(shù),線性算法
?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
}
:???
求大于等于給定整數(shù)的最小的2的整數(shù)次冪
????首先是最簡單的思路:求出n的二進(jìn)制表示的總位數(shù)m,于是1<<m即為所求值,當(dāng)然這里要排除n自身就是2的整數(shù)次冪的情況,復(fù)雜度O(m),實現(xiàn)如下:
?1
//
求大于等于n的最小的2的正整數(shù)冪,方法1
?2
//
時間復(fù)雜度O(n的二進(jì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
}
??? 事實上這就涉及到上面求二進(jìn)制表示位數(shù)的問題,所以
目前為止
在此基礎(chǔ)上的算法都是線性時間的。???
??? 那有沒有不用計算位數(shù)m,從而效率更好的算法呢,能不能像在計算二進(jìn)制表示中1的個數(shù)時那樣根據(jù)1的個數(shù)來設(shè)計算法呢?回到那一題中,“n-1會把n的二進(jìn)制表示中最低位的1置0并把其后的所有0置1”,那么n|=n-1就把n的二進(jìn)制表示中最低位1后的所有0置1,再加上1,那么就把最低位1左移了一位。于是,便有了更好的算法:循環(huán)左移最低位的1,直到n是2的整數(shù)次冪。該算法跟二進(jìn)制表示中的1個數(shù)和位置有關(guān),最壞時間復(fù)雜度還是O(二進(jìn)制表示位數(shù)),但是比起上一個實現(xiàn),這個算法在多數(shù)情況下都比上一個算法快。實現(xiàn)如下:
?1
//
求大于等于n的最小的2的正整數(shù)冪,方法2
?2
//
計算時間與n的二進(jìn)制表示中1的個數(shù)和位置有關(guān),比方法1效率高
?3
//
最壞情況下的時間復(fù)雜度與方法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
}
????
??? 最后來一個簡單的擴充題目:
??? 判斷給定的整數(shù)是不是4的整數(shù)次冪
????觀察4的整數(shù)次冪的特征,容易發(fā)現(xiàn)除了滿足n&(n-1)==0外,唯一的1位后的0的個數(shù)是偶數(shù),這從4
x
=2
2k
也能簡單地得到。這就很直觀地衍生出一個簡單的算法:
?1
//
判斷n是否是4的整數(shù)次冪
?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
;
//
線性時間求二進(jìn)制位數(shù)
?7
????
if
((bit_len
&
0x1
)
!=
1
)
?8
????????
return
?
true
;
?9
????
else
10
????????
return
?
false
;
11
}
????算法很直觀,但是比起is_2exp的常數(shù)時間is_4exp的線性時間總讓我覺得不能接受,不過無奈還是沒有想出好辦法來,哎。。。求大牛指點啊
??? 說明:寫這篇文章,已經(jīng)三次丟失全文了,把我快搞瘋了,firefox下好像有點問題,先把文章發(fā)上來,過會兒換到IE下繼續(xù)。。。
??? 再說明:換了IE后就沒再出問題了,不過寫著寫著發(fā)現(xiàn)寫了好久,先歇會兒,得看書補習(xí)功課了
??? 最后的說明:下次會基于上面的內(nèi)容,給本文最初提出的問題(只能用+,-和位運算實現(xiàn)整數(shù)除法(/)和取模(%))的實現(xiàn)
Feedback
#
re: 位運算之美——用+,-和位運算實現(xiàn)整數(shù)除法和取模(一)
回復(fù)
更多評論
2010-10-25 10:20 by
yu
無意中逛到這里,驚喜之。
#
re: 位運算之美——用+,-和位運算實現(xiàn)整數(shù)除法和取模(一)
回復(fù)
更多評論
2010-11-18 16:06 by
zl
最后的說明:下次會基于上面的內(nèi)容,給本文最初提出的問題(只能用+,-和位運算實現(xiàn)整數(shù)除法(/)和取模(%))的實現(xiàn)
在那里?
#
re: 位運算之美——用+,-和位運算實現(xiàn)整數(shù)除法和取模(一)
回復(fù)
更多評論
2011-09-25 12:03 by
skyworm
n &= ~n; // 寫錯啦,這個操作之后,n就永遠(yuǎn)等于0了。
刷新評論列表
只有注冊用戶
登錄
后才能發(fā)表評論。
【推薦】100%開源!大型工業(yè)跨平臺軟件C++源碼提供,建模,組態(tài)!
相關(guān)文章:
TEA算法在QQ中的應(yīng)用
Code01
c++MD5加密類
羅馬計數(shù)法
位運算之美——用+,-和位運算實現(xiàn)整數(shù)除法和取模(一)
Int2Hex
n個數(shù)中有且僅有一個數(shù)出現(xiàn)了奇數(shù)次
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Powered by:
C++博客
Copyright © S.l.e!ep.¢%
日歷
<
2011年4月
>
日
一
二
三
四
五
六
27
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
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)
網(wǎng)絡(luò)協(xié)議(2)
系統(tǒng)低層(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
數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù)結(jié)構(gòu)
搜索
積分與排名
積分 - 1260836
排名 - 10
最新評論
1.?re: linux信號Linux下Signal信號太詳細(xì)了,終于找到了
寫的不錯。
--zsx
2.?re: 匯編中的test和cmp比較
666666666
--xx
3.?re: linux信號Linux下Signal信號太詳細(xì)了,終于找到了
這篇文章就是個垃圾
--11
4.?re: CreateService加載驅(qū)動過程
可以在內(nèi)核太下直接調(diào)用這些函數(shù)來加載嗎?
--peace
5.?re: 在VC中徹底玩轉(zhuǎn)Excel
怎樣能夠提高讀寫速度
--Touch
6.?re: 函數(shù)開始處的MOV EDI, EDI的作用收藏
不錯,謝謝分享。
--abc
7.?re: gcc g++ 4.7 安裝淚奔記(續(xù))
最新已經(jīng)到4.9.2了,還是用Archlinux好。。
--bigeast
8.?re: ./lua/addtest.lua:9: attempt to index local 'testobj' (a userdata value)
c++對象導(dǎo)到lua之后成為了一個“userdata ”,原來上面的成員、方法都會訪問不了的,只是一個普通的內(nèi)存塊,如果想用,要把方法也倒到Lua。
--陳冠希
9.?re: 關(guān)于NoSQL,你必須知道的九件事
說的玄而又玄
--cpper
10.?re: ./lua/addtest.lua:9: attempt to index local 'testobj' (a userdata value)
lua_touserdata() 不會改變堆棧
--網(wǎng)絡(luò)兼職
11.?re: lua中的closure
這不就是閉包嘛,沒啥稀奇的吧。javascript也有 很多腳本語言都有
--evilwk
12.?re: lua中的closure
lua有專有名詞,叫upvalue
--Quon Lu
13.?re: lua函數(shù)中的"匿名變量"?
_是用作占位符,表示參數(shù)不會使用
有時候函數(shù)調(diào)用者傳入了多個參數(shù),函數(shù)用不到的參數(shù),可以用_占位
主要多見于一些回調(diào)函數(shù)
--Clear
14.?re: lua函數(shù)中的"匿名變量"?
只是傳遞可變參數(shù)而已,這兩個例子是結(jié)合演示可變參數(shù)吧
--南宮臨風(fēng)
15.?re: lua函數(shù)中的"匿名變量"?[未登錄]
占兩個位置,意圖何在?
--jcily
16.?re: IOCP的一個簡單封裝類(zz) [轉(zhuǎn)]
例子不能運行
--dsa
17.?re: Flash CS3動作面板打開出錯[Java運行時環(huán)境初始化時出現(xiàn)錯誤,你可能需要重...
不過我已經(jīng)有java環(huán)境了,為什么還是需要安裝呢?而且我想你說的那樣做,只有900KB而已啊!怎么回事?
--Echo____g
18.?re: The secret life of GetWindowText
評論內(nèi)容較長,點擊標(biāo)題查看
--allen
19.?re: Lua學(xué)習(xí)筆記
ECCDDFC08D2AE6DCD26DB8B09AE0F6264DFDA306
--xiaoxiao
20.?re: 實用命令:利用openssl進(jìn)行BASE64編碼解碼、md5/sha1摘要、AES/DES3加密解密 收藏
66F053665DF4F26C7CAA2DE22FBD1B51
--xiaoxiao
21.?re: 虛擬鍵盤(軟鍵盤)設(shè)計要點
博主 有個小bug不知道該怎么改
當(dāng)點擊完某個鍵的時候 時不時會出現(xiàn) 該鍵還遺留按下去的藍(lán)色 回不到原本顏色
是和頁面的刷新快慢有關(guān)嗎?
非常感謝
--red
22.?re: 虛擬鍵盤(軟鍵盤)設(shè)計要點
非常感謝博主!正好要開發(fā)軟鍵盤
--red
23.?re: C語言中實現(xiàn)不同函數(shù)間jump的方法[未登錄]
__asm{push 0}
替換為
_alloca(4)
--cpp
24.?re: QQ2009 界面技術(shù)(DirectUI)
評論內(nèi)容較長,點擊標(biāo)題查看
--xiaozhi_5638
25.?re: sqlite 日期比較.取大于現(xiàn)在時間的記錄
評論內(nèi)容較長,點擊標(biāo)題查看
--威風(fēng)
26.?re: yacc學(xué)習(xí)筆記(1) 2013.05.11
《flex 與 bison(中文版)》
--coreBugZJ
27.?re: yacc學(xué)習(xí)筆記(1) 2013.05.11
學(xué)習(xí)一下
--seahouse
28.?re: Coroutines in C
mark
--zgpxgame
29.?re: 突發(fā)奇想 之 遠(yuǎn)程調(diào)用
wcf
--三斷笛
30.?re: 突發(fā)奇想 之 遠(yuǎn)程調(diào)用
rpc
--Richard Wei
31.?re: 突發(fā)奇想 之 遠(yuǎn)程調(diào)用
函數(shù)式編程,參考一下jquery的數(shù)據(jù)請求。
--漂漂
32.?re: 突發(fā)奇想 之 遠(yuǎn)程調(diào)用
樓上的,我看了,系統(tǒng)API都有現(xiàn)成的,灰常不錯,我喜歡.
--S.l.e!ep.¢%
33.?re: 突發(fā)奇想 之 遠(yuǎn)程調(diào)用
樓主可以試試協(xié)程
--會飛的導(dǎo)彈豬
34.?re: 突發(fā)奇想 之 遠(yuǎn)程調(diào)用
Lambda 表達(dá)式 可以緩解 用起來感覺不錯的
--Lo
35.?re: 用XML存儲數(shù)據(jù)的缺陷,優(yōu)勢
@是大法官
頂~~~~~~~~
--幻想
36.?re: P處理的雙進(jìn)程守護
評論內(nèi)容較長,點擊標(biāo)題查看
--幻想
37.?re: Windows下刪除.svn文件夾的最簡易方法
這想法好,每次explorer刷新一次都會去做一次,又學(xué)到了
--幻想
38.?re: OPENSSL 生成 CERT 參考
REQ_DEPT_NAME 等 這些定義在哪? 最好把頭文件都給列出來。謝謝!
--呂文華
39.?re: DirectUI For WebBrowser
怎么解決IOleInPlaceSiteWindowless::InvalidateRect()無響應(yīng)的?
--bluesky
40.?re: 怎么讓Firefox支持ActiveX控件
在 new ActiveXObject 在IE中可以發(fā)現(xiàn)在火狐中用什么來代替啊
--陳彥鑫
閱讀排行榜
1.?linux信號Linux下Signal信號太詳細(xì)了,終于找到了(45158)
2.?實用命令:利用openssl進(jìn)行BASE64編碼解碼、md5/sha1摘要、AES/DES3加密解密 收藏 (8744)
3.?匯編中的test和cmp比較(8616)
4.?[轉(zhuǎn)] DirectUI的初步分析(7929)
5.?如何用WinDbg定位內(nèi)存泄露? (6785)
6.?調(diào)用OPENSSL讀取PEM文件的靈異問題(6769)
7.?如何區(qū)分虛擬網(wǎng)卡與物理網(wǎng)卡(6729)
8.?在主線程中慎用WaitForSingleObject (WaitForMultipleObjects) (轉(zhuǎn))(6329)
9.?在VC中徹底玩轉(zhuǎn)Excel(6320)
10.?./lua/addtest.lua:9: attempt to index local 'testobj' (a userdata value)(6295)
11.?sqlite 日期比較.取大于現(xiàn)在時間的記錄(6278)
12.?vc2005的詭異錯誤“Windows has triggered a breakpoint in .exe.”(6272)
13.?Linux遭遇Segmentation fault(6033)
14.?今天發(fā)現(xiàn) EnterCriticalSection 里頭還是調(diào)用了 WaitForSingleObject(5911)
15.?在vs2008中添加include文件和lib文件(5797)
16.?shell bash模擬二維數(shù)組(5770)
17.?DLL Inject -- 一、Windows 鉤子(Hooks) - (1)(5705)
18.?靜態(tài)代碼分析工具匯總(5566)
19.?lua動態(tài)鏈接庫(luaopen_*函數(shù)的使用)(5537)
20.?[轉(zhuǎn)載]最好的53個 VC++ /MFC 開源軟件項目(5465)
21.?VC 操作 MDB 文件類(5410)
22.?WSARecv 函數(shù)(5377)
23.?gcc g++ 4.7 安裝淚奔記.(5337)
24.?HOOK鉤子機制學(xué)習(xí)筆記(4) - 鉤子函數(shù)說明 收藏 (5250)
25.?關(guān)于TCP丟包,斷開的疑問(4987)
26.?[轉(zhuǎn)]VC++UDP實現(xiàn)可靠傳輸(文件)(虛擬TCP)((4976)
27.?curl應(yīng)用總結(jié)(一)(4871)
28.?c和c++中取任意對數(shù)的簡單方法(4850)
29.?【轉(zhuǎn)】如何高效產(chǎn)生m個n范圍內(nèi)的不重復(fù)隨機數(shù)(m<=n)(4748)
30.?lua動態(tài)鏈接庫之單個so文件包含多個模塊(luaL_requiref函數(shù)的使用) (4646)
31.?http協(xié)議 文件下載原理詳解(4519)
32.?反調(diào)試技巧總結(jié)-原理和實現(xiàn)(4477)
33.?set、vector、list和deque 順序容器(4304)
34.?xp下使用vista音量合成器(4287)
35.?如何合并兩個vector?(4218)
36.?std::tr1::shared_ptr 使用的一點體會 (4078)
37.?編碼規(guī)范(4063)
38.?CMake安裝(4006)
39.?實現(xiàn)Sock5代理(轉(zhuǎn))(3990)
40.?X.509 數(shù)字證書結(jié)構(gòu)和實例 (3885)
評論排行榜
1.?工作兩年后的總結(jié)(17)
2.?[轉(zhuǎn)載]最好的53個 VC++ /MFC 開源軟件項目(12)
3.?VMware虛擬機出現(xiàn)Reason: Failed to lock the file(轉(zhuǎn))(9)
4.?實現(xiàn)了一個寫LOG類(9)
5.?封裝了IOCP(8)
6.?Thread Class(7)
7.?2009的計劃(7)
8.?Visual C++ 6 令我很暈(6)
9.?突發(fā)奇想 之 遠(yuǎn)程調(diào)用(6)
10.?虛擬鍵盤(軟鍵盤)設(shè)計要點 (5)
11.?內(nèi)存崩潰的BUG (2) (5)
12.?Simple Word界面初稿2(5)
13.?SimpleWord界面初稿3(5)
14.?復(fù)雜的邏輯的BUG(4)
15.?今天發(fā)現(xiàn) EnterCriticalSection 里頭還是調(diào)用了 WaitForSingleObject(4)
16.?技術(shù)團隊管理(一)(4)
17.?內(nèi)存崩潰 CASE 3(4)
18.?內(nèi)存崩潰的BUG (4) 完成端口的問題? 程序的BUG?(4)
19.?為了生成flash文件方便,寫了個工具(4)
20.?在主線程中慎用WaitForSingleObject (WaitForMultipleObjects) (轉(zhuǎn))(4)
21.?單元測試工具在 MF C編程 中的使用問題 [轉(zhuǎn)] (花了錢在網(wǎng)上下載的一篇文章,郁悶)(4)
22.?代碼壞味3(4)
23.?位運算之美——用+,-和位運算實現(xiàn)整數(shù)除法和取模(一) (3)
24.?QQ2009 界面技術(shù)(DirectUI) (3)
25.?lua函數(shù)中的"匿名變量"?(3)
26.?代碼的壞味(3)
27.?86 Line 線程封裝類 only for Win32(3)
28.?代碼的壞味2(3)
29.?內(nèi)存崩潰的BUG (3) (3)
30.?也談 設(shè)計模式之Observer模式 (3)
31.?寫了個雙向鏈表(3)
32.?使用cppunit做c++單元測試(3)
33.?MsgWaitForMultipleObjects 后遺癥(3)
34.?關(guān)于TCP丟包,斷開的疑問(3)
35.?DLL Inject -- 一、Windows 鉤子(Hooks) - (1)(3)
36.?突發(fā)的 XX Encoding(3)
37.?CxImage類庫(3)
38.?Inject DLL by IME(2)
39.?利用WH_DEBUG消息進(jìn)行反HOOK (2)
40.?C++ 兩則記事(2)
久久妇女高潮几次MBA
|
国产亚洲精久久久久久无码77777
|
亚洲日本va中文字幕久久
|
久久夜色精品国产噜噜噜亚洲AV
|
狠狠精品久久久无码中文字幕
|
国产亚洲色婷婷久久99精品91
|
国产成人综合久久精品尤物
|
亚洲欧洲久久av
|
国产产无码乱码精品久久鸭
|
久久播电影网
|
国产精品久久网
|
久久青青草视频
|
久久精品国产亚洲沈樵
|
国产精品亚洲综合久久
|
久久一区二区三区免费
|
久久久久亚洲av无码专区喷水
|
伊人久久大香线蕉综合热线
|
999久久久免费精品国产
|
久久久久99这里有精品10
|
999久久久免费精品国产
|
精品国产青草久久久久福利
|
久久国产福利免费
|
国产精品久久久久jk制服
|
久久久久亚洲AV无码观看
|
久久精品国产色蜜蜜麻豆
|
久久精品成人国产午夜
|
99蜜桃臀久久久欧美精品网站
|
精品99久久aaa一级毛片
|
AV无码久久久久不卡网站下载
|
品成人欧美大片久久国产欧美...
|
久久精品国产亚洲av麻豆小说
|
久久夜色精品国产www
|
久久91精品综合国产首页
|
93精91精品国产综合久久香蕉
|
国产91色综合久久免费分享
|
婷婷综合久久中文字幕蜜桃三电影
|
色天使久久综合网天天
|
中文成人无码精品久久久不卡
|
国产精品久久久久久久
|
72种姿势欧美久久久久大黄蕉
|
九九精品99久久久香蕉
|