S.l.e!ep.¢%
像打了激速一樣,以四倍的速度運(yùn)轉(zhuǎn),開心的工作
簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
C++博客
::
首頁
::
新隨筆
::
聯(lián)系
::
聚合
::
管理
位運(yùn)算之美——用+,-和位運(yùn)算實(shí)現(xiàn)整數(shù)除法和取模(一)
Posted on 2009-09-20 11:13
S.l.e!ep.¢%
閱讀(3611)
評論(3)
編輯
收藏
引用
所屬分類:
Algorithm
位運(yùn)算之美——用+,-和位運(yùn)算實(shí)現(xiàn)整數(shù)除法和取模(一)
??? 今天看了一位師兄去年的筆經(jīng)總結(jié),其中有一題是“不許用%和/來實(shí)現(xiàn)求任意數(shù)除以3的余數(shù)”,我想考官的目的應(yīng)該是想考察學(xué)生對位運(yùn)算的熟悉程度吧,于是我把題目擴(kuò)展成“只能用+,-和位運(yùn)算實(shí)現(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ùn)算外,還能考察應(yīng)聘者能否給出創(chuàng)新的算法來更好地解決問題。可以說這些題目都不難,如果使用32位的int來表示整數(shù)的話,蠻力法都可以比較好地完成任務(wù),但是如果想盡可能地提高效率,那就需要動一番腦經(jīng)了。下面給出我對這些問題的整理和C++實(shí)現(xiàn),并在此基礎(chǔ)上給出原題(只能用+,-和位運(yùn)算實(shí)現(xiàn)整數(shù)除法(/)和取模(%),下文都稱為原題)的實(shí)現(xiàn)。
??? 當(dāng)然,從某種意義上講,特別是從充分利用底層硬件的計算能力(利用特殊的cpu指令)來看,這些解法肯定不是最優(yōu)的,希望大俠們多多指點(diǎn)。
??? 還要說明的是,
下面各題的順序是按照我在思考原題時的思維過程來安排的
,在給出原題的實(shí)現(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ù)
就很簡單了。事實(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
}
??? 不知大家有沒有看出問題來?是的~操作符會把所有高位的都取反,而不是只把有效位取反,所以我們需要一個能保持高位不變的位取反操作,下面是我的實(shí)現(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
}
??? 看到這里,聰明的讀者肯定看出問題來了,其實(shí)我干了一件很蠢的事情。看看上述算法的時間復(fù)雜度,negate_bits花了O(n的二進(jìn)制表示中
1
的個數(shù)),while循環(huán)計算取反后的n的二進(jìn)制表示中1的個數(shù),事實(shí)上就是O(n的二進(jìn)制表示中
0
的個數(shù)),兩部分加起來其實(shí)就是二進(jìn)制表示總的有效位數(shù),換句話說,這個算法是線性的,而事實(shí)上,我們完全可以先線性地求出這個總的有效位數(shù),然后減去1的位數(shù),即得到0的位數(shù),根本不用費(fèi)那么大勁去整個保持高位的取反操作,兩者的時間復(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ī)定了
“不能使用庫例程”
,那么在這個限制下該怎么做呢?有沒有比線性時間更好的算法呢?其實(shí)到目前為止我也沒有什么特別好的算法,希望誰有什么精妙的算法能指點(diǎn)一下,不要打我。。。
?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),實(shí)現(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
}
??? 事實(shí)上這就涉及到上面求二進(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ù)),但是比起上一個實(shí)現(xiàn),這個算法在多數(shù)情況下都比上一個算法快。實(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
}
????
??? 最后來一個簡單的擴(kuò)充題目:
??? 判斷給定的整數(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的線性時間總讓我覺得不能接受,不過無奈還是沒有想出好辦法來,哎。。。求大牛指點(diǎn)啊
??? 說明:寫這篇文章,已經(jīng)三次丟失全文了,把我快搞瘋了,firefox下好像有點(diǎn)問題,先把文章發(fā)上來,過會兒換到IE下繼續(xù)。。。
??? 再說明:換了IE后就沒再出問題了,不過寫著寫著發(fā)現(xiàn)寫了好久,先歇會兒,得看書補(bǔ)習(xí)功課了
??? 最后的說明:下次會基于上面的內(nèi)容,給本文最初提出的問題(只能用+,-和位運(yùn)算實(shí)現(xiàn)整數(shù)除法(/)和取模(%))的實(shí)現(xiàn)
Feedback
#
re: 位運(yùn)算之美——用+,-和位運(yùn)算實(shí)現(xiàn)整數(shù)除法和取模(一)
回復(fù)
更多評論
2010-10-25 10:20 by
yu
無意中逛到這里,驚喜之。
#
re: 位運(yùn)算之美——用+,-和位運(yùn)算實(shí)現(xiàn)整數(shù)除法和取模(一)
回復(fù)
更多評論
2010-11-18 16:06 by
zl
最后的說明:下次會基于上面的內(nèi)容,給本文最初提出的問題(只能用+,-和位運(yùn)算實(shí)現(xiàn)整數(shù)除法(/)和取模(%))的實(shí)現(xiàn)
在那里?
#
re: 位運(yùn)算之美——用+,-和位運(yùn)算實(shí)現(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ù)法
位運(yùn)算之美——用+,-和位運(yùn)算實(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.¢%
日歷
<
2009年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)
網(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)
搜索
積分與排名
積分 - 1260811
排名 - 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)]
例子不能運(yùn)行
--dsa
17.?re: Flash CS3動作面板打開出錯[Java運(yùn)行時環(huán)境初始化時出現(xiàn)錯誤,你可能需要重...
不過我已經(jīng)有java環(huán)境了,為什么還是需要安裝呢?而且我想你說的那樣做,只有900KB而已啊!怎么回事?
--Echo____g
18.?re: The secret life of GetWindowText
評論內(nèi)容較長,點(diǎn)擊標(biāo)題查看
--allen
19.?re: Lua學(xué)習(xí)筆記
ECCDDFC08D2AE6DCD26DB8B09AE0F6264DFDA306
--xiaoxiao
20.?re: 實(shí)用命令:利用openssl進(jìn)行BASE64編碼解碼、md5/sha1摘要、AES/DES3加密解密 收藏
66F053665DF4F26C7CAA2DE22FBD1B51
--xiaoxiao
21.?re: 虛擬鍵盤(軟鍵盤)設(shè)計要點(diǎn)
博主 有個小bug不知道該怎么改
當(dāng)點(diǎn)擊完某個鍵的時候 時不時會出現(xiàn) 該鍵還遺留按下去的藍(lán)色 回不到原本顏色
是和頁面的刷新快慢有關(guān)嗎?
非常感謝
--red
22.?re: 虛擬鍵盤(軟鍵盤)設(shè)計要點(diǎn)
非常感謝博主!正好要開發(fā)軟鍵盤
--red
23.?re: C語言中實(shí)現(xiàn)不同函數(shù)間jump的方法[未登錄]
__asm{push 0}
替換為
_alloca(4)
--cpp
24.?re: QQ2009 界面技術(shù)(DirectUI)
評論內(nèi)容較長,點(diǎn)擊標(biāo)題查看
--xiaozhi_5638
25.?re: sqlite 日期比較.取大于現(xiàn)在時間的記錄
評論內(nèi)容較長,點(diǎn)擊標(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)程守護(hù)
評論內(nèi)容較長,點(diǎn)擊標(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.?實(shí)用命令:利用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 開源軟件項(xiàng)目(5465)
21.?VC 操作 MDB 文件類(5409)
22.?WSARecv 函數(shù)(5377)
23.?gcc g++ 4.7 安裝淚奔記.(5337)
24.?HOOK鉤子機(jī)制學(xué)習(xí)筆記(4) - 鉤子函數(shù)說明 收藏 (5250)
25.?關(guān)于TCP丟包,斷開的疑問(4987)
26.?[轉(zhuǎn)]VC++UDP實(shí)現(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ù)隨機(jī)數(shù)(m<=n)(4748)
30.?lua動態(tài)鏈接庫之單個so文件包含多個模塊(luaL_requiref函數(shù)的使用) (4646)
31.?http協(xié)議 文件下載原理詳解(4519)
32.?反調(diào)試技巧總結(jié)-原理和實(shí)現(xiàn)(4476)
33.?set、vector、list和deque 順序容器(4304)
34.?xp下使用vista音量合成器(4287)
35.?如何合并兩個vector?(4218)
36.?std::tr1::shared_ptr 使用的一點(diǎn)體會 (4078)
37.?編碼規(guī)范(4063)
38.?CMake安裝(4006)
39.?實(shí)現(xiàn)Sock5代理(轉(zhuǎn))(3990)
40.?X.509 數(shù)字證書結(jié)構(gòu)和實(shí)例 (3885)
評論排行榜
1.?工作兩年后的總結(jié)(17)
2.?[轉(zhuǎn)載]最好的53個 VC++ /MFC 開源軟件項(xiàng)目(12)
3.?VMware虛擬機(jī)出現(xiàn)Reason: Failed to lock the file(轉(zhuǎn))(9)
4.?實(shí)現(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è)計要點(diǎn) (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ù)團(tuán)隊管理(一)(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.?位運(yùn)算之美——用+,-和位運(yùn)算實(shí)現(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)
久久国产乱子伦精品免费午夜
|
久久精品无码一区二区app
|
亚洲欧美国产日韩综合久久
|
亚洲成人精品久久
|
亚洲?V乱码久久精品蜜桃
|
国产成人综合久久精品红
|
久久综合狠狠综合久久综合88
|
国产亚洲美女精品久久久2020
|
久久久不卡国产精品一区二区
|
久久综合狠狠综合久久激情
|
性高湖久久久久久久久
|
国内精品久久久久久不卡影院
|
亚洲色大成网站WWW久久九九
|
久久久久人妻精品一区二区三区
|
天天综合久久久网
|
久久91精品国产91
|
久久99精品久久久久子伦
|
国产一区二区久久久
|
99精品国产在热久久无毒不卡
|
中文精品久久久久人妻不卡
|
99久久精品国产免看国产一区
|
色综合久久天天综合
|
偷偷做久久久久网站
|
久久青草国产精品一区
|
久久九九兔免费精品6
|
综合久久精品色
|
精品久久综合1区2区3区激情
|
精品国产青草久久久久福利
|
国产成人香蕉久久久久
|
国产AⅤ精品一区二区三区久久
|
久久国产精品99久久久久久老狼
|
午夜天堂精品久久久久
|
国产精品美女久久久网AV
|
国产精品久久久久久久久鸭
|
亚洲中文字幕无码久久2017
|
要久久爱在线免费观看
|
精品国产青草久久久久福利
|
99久久精品无码一区二区毛片
|
亚洲中文字幕无码久久2020
|
欧美性大战久久久久久
|
久久久久久伊人高潮影院
|