锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久成人精品一区二区三区,国产精品一二一区,一本一本a久久 http://m.shnenglu.com/softko/娣¤杽鍚嶅埄,淇韓鍏繪?/description>zh-cn Tue, 30 Sep 2025 02:19:26 GMT Tue, 30 Sep 2025 02:19:26 GMT 60 鏁扮粍涓庢寚閽堢殑鍖哄埆 http://m.shnenglu.com/softko/archive/2013/02/19/197934.htmleircQ eircQ Tue, 19 Feb 2013 05:33:00 GMT http://m.shnenglu.com/softko/archive/2013/02/19/197934.html http://m.shnenglu.com/softko/comments/197934.html http://m.shnenglu.com/softko/archive/2013/02/19/197934.html#Feedback 0 http://m.shnenglu.com/softko/comments/commentRss/197934.html http://m.shnenglu.com/softko/services/trackbacks/197934.html C璇█涓浜庝笅闈㈢殑涓ょ鎯呭喌錛屾槸鍚︾浉鍚屽憿錛?/p>
char a[] = "abcdefg"錛?--------------1
char *p = "abcdefg";-----------------2
鍦ㄨ皥鍒拌繖浜涘尯鍒椂錛屽簲璇ュ厛璋堜竴涓嬭綆楁満涓鍙橀噺鏄浣曞瓨鍌ㄧ殑銆備粠緙栬瘧鍘熺悊涓垜浠煡閬擄紝瀵逛簬鎵鏈夌殑鍙橀噺浠栭兘浼氬獎灝勫埌涓涓鍙瘋〃涓備負浜嗙畝鍖栵紝榪欓噷緇欏嚭涓縐嶆渶綆鍗曠殑渚夸簬鐞嗚В鐨勭鍙瘋〃錛?/p>
琛? 涓涓畝鍗曠殑絎﹀彿琛ㄧず渚?/p>
浠ヤ笂琛ㄦ牸涓璦浠h〃涓涓彉閲忥紝0xffaa鍒欎負鍙橀噺a鐨勫唴瀹圭殑瀛樺偍鍦板潃錛沺浠h〃鍙︿竴涓彉閲忥紝0xffcc涓哄彉閲弍鐨勫唴瀹圭殑瀛樺偍鍦板潃銆傚浜庢暟緇勫瀷鐨勫彉閲忓拰鎸囬拡鍨嬬殑鍙橀噺錛屽叾鍦板潃浠h〃鐨勫惈涔変笉鍚屻?/p>
瀵逛簬鏁扮粍a:
榪欎釜0xffaa鍦板潃灝辨槸鍏跺瓨鏀炬暟緇勫唴瀹圭殑棣栧湴鍧浜嗐傚浜巃[i]鐨勫紩鐢ㄦ楠ゅ涓嬶細
姝ラ涓銆佸彇鍑篿鐨勫鹼紝灝嗕粬涓?xffaa鐩稿姞錛?/p>
姝ラ浜屻佸彇鍑轟負(0xffaa+i)涓殑鍐呭銆?/p>
瀵逛簬鎸囬拡p:
榪欎釜0xffcc鍦板潃灝辨槸涓瓨鏀劇殑涓嶆槸瀛楃涓茬殑鍐呭錛岃屾槸涓涓湴鍧錛岃繖涓湴鍧鎵嶆槸瀛楃涓茬殑棣栧湴鍧錛屽p[i]鎴栬呯敤鎸囬拡琛ㄧず*(p+i)鐨勫簲鐢ㄦ楠ゅ涓嬶細
姝ラ涓銆佸彇鍑?xffcc鍦板潃涓殑鍐呭錛屼緥濡備負0xffdf;
姝ラ浜屻佸彇鍑哄湴鍧0xffdf涓殑鍐呭銆?/p>
鏁扮粍鍜屾寚閽堢殑瀵規瘮濡備笅鍥撅細
涓嬮潰鏄湪VC6.0涓嬩綔鐨勪竴涓瘯楠岋紝閫氳繃榪欎釜璇曢獙澶у鍙互鐪嬪埌錛岃櫧鐒跺悓榪嘯]鍜岄氳繃*寮曠敤閮戒竴鏍鳳紝浣嗗湪鍐呴儴澶勭悊鐨勬柟娉曟槸涓嶄竴鏍風殑銆?/p>
#include "stdafx.h"
#include "stdio.h"
int main(int argc, char* argv[])
{
int a[3]={1,2,3};
int *p =a;
printf("a:%d,&a:%d,a[0]:%d,*a:%d,p:%d,&p:%d,*p:%d,p[0]:%d",a,&a,
a[0],*a,p,&p,*p,p[0]);
return 0;
}
杈撳嚭緇撴灉錛?/p>
a:1310580,&a:1310580,a[0]:1,*a:1,p:1310580,&p:1310576,*p:1,p[0]:1銆?/p>
鐢變笂闈㈢殑鍒嗘瀽鍙煡錛屽鏋滃湪涓涓枃浠朵腑瀹氫箟浜嗕竴涓暟緇刬nt maychar[100],閭d箞涓嬮潰鐨勫0鏄庡氨鏄畬鍏ㄩ敊璇殑銆?/p>
extern int *maychar;
榪欐牱鐨勮瘽錛屽湪寮曠敤鏃朵粬灝變細鎸夌収鎸囬拡鐨勬柟娉曟潵寮曠敤鏁扮粍銆傛紜殑澹版槑搴旇鏄痚xter int maychar[];榪欓噷鏁扮粍鐨勫ぇ灝忓茍涓嶉噸瑕併備笅闈㈠皢鎸囬拡涓庢暟緇勭殑鍖哄埆鐢ㄨ〃鏍肩殑褰㈠紡鍒楀嚭濡備笅錛?/p>
鎸囬拡
鏁扮粍
淇濆瓨鏁版嵁鐨勫湴鍧
淇濆瓨鏁版嵁
闂存帴璁塊棶鏁版嵁
鐩存帴璁塊棶
閫氬父鐢ㄤ簬鍔ㄦ佹暟鎹粨鏋?/p>
閫氬父鐢ㄤ簬瀛樺偍鍥哄畾鏁扮洰鏁版嵁綾誨瀷鐩稿悓鐨勫厓绱?/p>
鐩稿叧鎿嶄綔malloc(),free()絳?/p>
闅愬紡鍒嗛厤鍜屽垹闄?/p>
鍚屽父鎸囧悜鍖垮悕鏁版嵁
鑷韓鍗充負鏁版嵁鍚?/p>
琛? 鎸囬拡涓庢暟緇勭殑鍖哄埆
榪樿鎻愰啋涓鐐圭殑灝辨槸錛?/p>
char a[] = "abcdefg"錛?--------------鏁扮粍鍐呭鑳戒慨鏀?瀛楃鏁扮粍)
char *p = "abcdefg";-----------------鍐呭涓嶈兘淇敼錛堝瓧絎︿覆甯擱噺錛?/p>
鍦ˋNSI C涓紝鍒濆鍖栨寚閽堟槸鎵鍒涘緩鐨勫瓧絎︿覆鏃跺父閲忥紝琚畾涔変負鍙錛屽鏋滆瘯鍥鵑氳繃鎸囬拡淇敼榪欎釜瀛楃涓茬殑鍊鹼紝紼嬪簭灝變細鍑虹幇涓哄畾涔夌殑琛屼負銆?/p>
]]>鏂扮殑涓騫達紝鏂扮殑涓澶╋紝鏂扮殑姘旇薄銆傦紥錛愶紤錛掞紝鎴戞潵涔熴?/title> http://m.shnenglu.com/softko/archive/2012/01/20/164390.htmleircQ eircQ Thu, 19 Jan 2012 17:38:00 GMT http://m.shnenglu.com/softko/archive/2012/01/20/164390.html http://m.shnenglu.com/softko/comments/164390.html http://m.shnenglu.com/softko/archive/2012/01/20/164390.html#Feedback 1 http://m.shnenglu.com/softko/comments/commentRss/164390.html http://m.shnenglu.com/softko/services/trackbacks/164390.html 鍙互璇?012鏄漿鎶樼殑涓騫淬?br /> 鎴戜篃寮濮嬫濊冭嚜宸便?br /> 鍏徃鍦ㄨ漿鍨嬶紝鎴戜篃鍦ㄨ漿鍙樸?br /> 2012騫寸殑鐩爣錛?br /> 涓.鎺у埗鑷繁銆?br />銆銆鍋氳嚜宸卞鑷繁鎸佺畫鍙楃泭鐨勪簨鎯呫?br />銆銆 銆銆浜?涓嶆柇鍦板涔犮傚涔犲墠浜虹殑緇忛獙錛岄伩鍏嶅墠浜虹殑閿欒銆?br /> 鐪嬩功錛堝涔犳妧鑳斤紝瀛︿範鍘嗗彶錛夛紝瑙傚療鍛ㄥ洿鐨勪漢錛屾濊冦?br /> 涓?璁よ瘑鑷繁銆傚姫鍔涘幓鍋氬ソ鑷繁銆傚緩璁捐嚜宸辯殑鍘熷垯銆傦紙姣忓ぉ鎬濊冿級 鍥?鏇村姞嬋鎯呭湴鍘葷儹鐖辯敓媧伙紝鍘昏瀺鍏ュ埌鐢熸椿錛屽伐浣滀腑銆傜湡璇氬寰呮瘡涓涓漢銆?br /> ]]> 鍚勭鎺掑簭綆楁硶浠嬬粛 http://m.shnenglu.com/softko/archive/2011/06/17/148828.htmleircQ eircQ Fri, 17 Jun 2011 00:09:00 GMT http://m.shnenglu.com/softko/archive/2011/06/17/148828.html http://m.shnenglu.com/softko/comments/148828.html http://m.shnenglu.com/softko/archive/2011/06/17/148828.html#Feedback 0 http://m.shnenglu.com/softko/comments/commentRss/148828.html http://m.shnenglu.com/softko/services/trackbacks/148828.html 鎺掑簭綆楁硶鏄竴縐嶅熀鏈茍涓斿父鐢ㄧ殑綆楁硶銆傜敱浜庡疄闄呭伐浣滀腑澶勭悊鐨勬暟閲忓法澶э紝鎵浠ユ帓搴忕畻娉曞綆楁硶鏈韓鐨勯熷害瑕佹眰寰堥珮銆?br /> 鑰屼竴鑸垜浠墍璋撶殑綆楁硶鐨勬ц兘涓昏鏄寚綆楁硶鐨勫鏉傚害錛屼竴鑸敤O鏂規硶鏉ヨ〃紺恒傚湪鍚庨潰鎴戝皢緇欏嚭璇︾粏鐨勮鏄庛?br /> 瀵逛簬鎺掑簭鐨勭畻娉曟垜鎯沖厛鍋氫竴鐐圭畝鍗曠殑浠嬬粛錛屼篃鏄粰榪欑瘒鏂囩珷鐞嗕竴涓彁綰層?br /> 鎴戝皢鎸夌収綆楁硶鐨勫鏉傚害錛屼粠綆鍗曞埌闅炬潵鍒嗘瀽綆楁硶銆?br /> 絎竴閮ㄥ垎鏄畝鍗曟帓搴忕畻娉曪紝鍚庨潰浣犲皢鐪嬪埌浠栦滑鐨勫叡鍚岀偣鏄畻娉曞鏉傚害涓篛(N*N)錛堝洜涓烘病鏈変嬌鐢╳ord,鎵浠ユ棤娉曟墦鍑轟笂鏍囧拰涓嬫爣錛夈?br /> 絎簩閮ㄥ垎鏄珮綰ф帓搴忕畻娉曪紝澶嶆潅搴︿負O(Log2(N))銆傝繖閲屾垜浠彧浠嬬粛涓縐嶇畻娉曘傚彟澶栬繕鏈夊嚑縐嶇畻娉曞洜涓烘秹鍙婃爲涓庡爢鐨勬蹇碉紝鎵浠ヨ繖閲屼笉浜庤璁恒?br /> 絎笁閮ㄥ垎綾諱技鍔ㄨ剳絳嬨傝繖閲岀殑涓ょ綆楁硶騫朵笉鏄渶濂界殑錛堢敋鑷蟲湁鏈鎱㈢殑錛夛紝浣嗘槸綆楁硶鏈韓姣旇緝濂囩壒錛屽煎緱鍙傝冿紙緙栫▼鐨勮搴︼級銆傚悓鏃朵篃鍙互璁╂垜浠粠鍙﹀鐨勮搴︽潵璁よ瘑榪欎釜闂銆?br /> 絎洓閮ㄥ垎鏄垜閫佺粰澶у鐨勪竴涓鍚庣殑鐢滅偣——涓涓熀浜庢ā鏉跨殑閫氱敤蹇熸帓搴忋傜敱浜庢槸妯℃澘鍑芥暟鍙互瀵逛換浣曟暟鎹被鍨嬫帓搴忥紙鎶辨瓑錛岄噷闈嬌鐢ㄤ簡涓浜涜鍧涗笓瀹剁殑鍛㈢О錛夈? 鐜板湪錛岃鎴戜滑寮濮嬪惂錛? 涓銆佺畝鍗曟帓搴忕畻娉? 鐢變簬紼嬪簭姣旇緝綆鍗曪紝鎵浠ユ病鏈夊姞浠涔堟敞閲娿傛墍鏈夌殑紼嬪簭閮界粰鍑轟簡瀹屾暣鐨勮繍琛屼唬鐮侊紝騫跺湪鎴戠殑VC鐜涓嬭繍琛岄氳繃銆傚洜涓烘病鏈夋秹鍙奙FC鍜學INDOWS鐨勫唴瀹癸紝鎵浠ュ湪BORLAND C++鐨勫鉤鍙頒笂搴旇涔熶笉浼氭湁浠涔堥棶棰樼殑銆傚湪浠g爜鐨勫悗闈㈢粰鍑轟簡榪愯榪囩▼紺烘剰錛屽笇鏈涘鐞嗚В鏈夊府鍔┿? 1.鍐掓場娉曪細 榪欐槸鏈鍘熷錛屼篃鏄紬鎵鍛ㄧ煡鐨勬渶鎱㈢殑綆楁硶浜嗐備粬鐨勫悕瀛楃殑鐢辨潵鍥犱負瀹冪殑宸ヤ綔鐪嬫潵璞℃槸鍐掓場錛? #include <iostream.h> void BubbleSort(int* pData,int Count) { int iTemp; for(int i=1;i<Count;i++) { for(int j=Count-1;j>=i;j--) { if(pData[j]<pData[j-1]) { iTemp = pData[j-1]; pData[j-1] = pData[j]; pData[j] = iTemp; } } } } void main() { int data[] = {10,9,8,7,6,5,4}; BubbleSort(data,7); for (int i=0;i<7;i++) cout<<data[i]<<" "; cout<<"\n"; } 鍊掑簭(鏈緋熸儏鍐? 絎竴杞細10,9,8,7->10,9,7,8->10,7,9,8->7,10,9,8(浜ゆ崲3嬈? 絎簩杞細7,10,9,8->7,10,8,9->7,8,10,9(浜ゆ崲2嬈? 絎竴杞細7,8,10,9->7,8,9,10(浜ゆ崲1嬈? 寰幆嬈℃暟錛?嬈? 浜ゆ崲嬈℃暟錛?嬈? 鍏朵粬錛? 絎竴杞細8,10,7,9->8,10,7,9->8,7,10,9->7,8,10,9(浜ゆ崲2嬈? 絎簩杞細7,8,10,9->7,8,10,9->7,8,10,9(浜ゆ崲0嬈? 絎竴杞細7,8,10,9->7,8,9,10(浜ゆ崲1嬈? 寰幆嬈℃暟錛?嬈? 浜ゆ崲嬈℃暟錛?嬈? 涓婇潰鎴戜滑緇欏嚭浜嗙▼搴忔錛岀幇鍦ㄦ垜浠垎鏋愬畠錛氳繖閲岋紝褰卞搷鎴戜滑綆楁硶鎬ц兘鐨勪富瑕侀儴鍒嗘槸寰幆鍜屼氦鎹紝 鏄劇劧錛屾鏁拌秺澶氾紝鎬ц兘灝辮秺宸備粠涓婇潰鐨勭▼搴忔垜浠彲浠ョ湅鍑哄驚鐜殑嬈℃暟鏄浐瀹氱殑錛屼負1+2+...+n-1銆? 鍐欐垚鍏紡灝辨槸1/2*(n-1)*n銆? 鐜板湪娉ㄦ剰錛屾垜浠粰鍑篛鏂規硶鐨勫畾涔夛細 鑻ュ瓨鍦ㄤ竴甯擱噺K鍜岃搗鐐筺0錛屼嬌褰搉>=n0鏃訛紝鏈塮(n)<=K*g(n),鍒檉(n) = O(g(n))銆傦紙鍛靛懙錛屼笉瑕佽娌″濂芥暟瀛﹀憖錛屽浜庣紪紼嬫暟瀛︽槸闈炲父閲嶈鐨勶紒錛侊紒錛? 鐜板湪鎴戜滑鏉ョ湅1/2*(n-1)*n錛屽綋K=1/2錛宯0=1錛実(n)=n*n鏃訛紝1/2*(n-1)*n<=1/2*n*n=K*g(n)銆傛墍浠?n)=O(g(n))=O(n*n)銆傛墍浠ユ垜浠▼搴忓驚鐜殑澶嶆潅搴︿負O(n*n)銆? 鍐嶇湅浜ゆ崲銆備粠紼嬪簭鍚庨潰鎵璺熺殑琛ㄥ彲浠ョ湅鍒幫紝涓ょ鎯呭喌鐨勫驚鐜浉鍚岋紝浜ゆ崲涓嶅悓銆傚叾瀹炰氦鎹㈡湰韜悓鏁版嵁婧愮殑鏈夊簭紼嬪害鏈夋瀬澶х殑鍏崇郴錛屽綋鏁版嵁澶勪簬鍊掑簭鐨勬儏鍐墊椂錛?浜ゆ崲嬈℃暟鍚屽驚鐜竴鏍鳳紙姣忔寰幆鍒ゆ柇閮戒細浜ゆ崲錛夛紝澶嶆潅搴︿負O(n*n)銆傚綋鏁版嵁涓烘搴忥紝灝嗕笉浼氭湁浜ゆ崲銆傚鏉傚害涓篛(0)銆備貢搴忔椂澶勪簬涓棿鐘舵併傛鏄敱浜庤繖鏍?鐨勫師鍥狅紝鎴戜滑閫氬父閮芥槸閫氳繃寰幆嬈℃暟鏉ュ姣旂畻娉曘? 2.浜ゆ崲娉曪細 浜ゆ崲娉曠殑紼嬪簭鏈娓呮櫚綆鍗曪紝姣忔鐢ㄥ綋鍓嶇殑鍏冪礌涓涓鐨勫悓鍏跺悗鐨勫厓绱犳瘮杈冨茍浜ゆ崲銆? #include <iostream.h> void ExchangeSort(int* pData,int Count) { int iTemp; for(int i=0;i<Count-1;i++) { for(int j=i+1;j<Count;j++) { if(pData[j]<pData[i]) { iTemp = pData[i]; pData[i] = pData[j]; pData[j] = iTemp; } } } } void main() { int data[] = {10,9,8,7,6,5,4}; ExchangeSort(data,7); for (int i=0;i<7;i++) cout<<data[i]<<" "; cout<<"\n"; } 鍊掑簭(鏈緋熸儏鍐? 絎竴杞細10,9,8,7->9,10,8,7->8,10,9,7->7,10,9,8(浜ゆ崲3嬈? 絎簩杞細7,10,9,8->7,9,10,8->7,8,10,9(浜ゆ崲2嬈? 絎竴杞細7,8,10,9->7,8,9,10(浜ゆ崲1嬈? 寰幆嬈℃暟錛?嬈? 浜ゆ崲嬈℃暟錛?嬈? 鍏朵粬錛? 絎竴杞細8,10,7,9->8,10,7,9->7,10,8,9->7,10,8,9(浜ゆ崲1嬈? 絎簩杞細7,10,8,9->7,8,10,9->7,8,10,9(浜ゆ崲1嬈? 絎竴杞細7,8,10,9->7,8,9,10(浜ゆ崲1嬈? 寰幆嬈℃暟錛?嬈? 浜ゆ崲嬈℃暟錛?嬈? 浠庤繍琛岀殑琛ㄦ牸鏉ョ湅錛屼氦鎹㈠嚑涔庡拰鍐掓場涓鏍風碂銆備簨瀹炵‘瀹炲姝ゃ傚驚鐜鏁板拰鍐掓場涓鏍蜂篃鏄?/2*(n-1)*n錛屾墍浠ョ畻娉曠殑澶嶆潅搴︿粛鐒舵槸O(n*n)銆傜敱浜庢垜浠棤娉曠粰鍑烘墍鏈夌殑鎯呭喌錛屾墍浠ュ彧鑳界洿鎺ュ憡璇夊ぇ瀹朵粬浠湪浜ゆ崲涓婇潰涔熸槸涓鏍風殑緋熺硶錛堝湪鏌愪簺鎯呭喌涓嬬◢濂斤紝鍦ㄦ煇浜涙儏鍐典笅紼嶅樊錛夈? 3.閫夋嫨娉曪細 鐜板湪鎴戜滑緇堜簬鍙互鐪嬪埌涓鐐瑰笇鏈涳細閫夋嫨娉曪紝榪欑鏂規硶鎻愰珮浜嗕竴鐐規ц兘錛堟煇浜涙儏鍐典笅錛? 榪欑鏂規硶綾諱技鎴戜滑浜轟負鐨勬帓搴忎範鎯細浠庢暟鎹腑閫夋嫨鏈灝忕殑鍚岀涓涓間氦鎹紝鍦ㄤ粠鐪佷笅鐨勯儴鍒嗕腑閫夋嫨鏈灝忕殑涓庣浜屼釜浜ゆ崲錛岃繖鏍峰線澶嶄笅鍘匯? #include <iostream.h> void SelectSort(int* pData,int Count) { int iTemp; int iPos; for(int i=0;i<Count-1;i++) { iTemp = pData[i]; iPos = i; for(int j=i+1;j<Count;j++) { if(pData[j]<iTemp) { iTemp = pData[j]; iPos = j; } } pData[iPos] = pData[i]; pData[i] = iTemp; } } void main() { int data[] = {10,9,8,7,6,5,4}; SelectSort(data,7); for (int i=0;i<7;i++) cout<<data[i]<<" "; cout<<"\n"; } 鍊掑簭(鏈緋熸儏鍐? 絎竴杞細10,9,8,7->(iTemp=9)10,9,8,7->(iTemp=8)10,9,8,7->(iTemp=7)7,9,8,10(浜ゆ崲1嬈? 絎簩杞細7,9,8,10->7,9,8,10(iTemp=8)->(iTemp=8)7,8,9,10(浜ゆ崲1嬈? 絎竴杞細7,8,9,10->(iTemp=9)7,8,9,10(浜ゆ崲0嬈? 寰幆嬈℃暟錛?嬈? 浜ゆ崲嬈℃暟錛?嬈? 鍏朵粬錛? 絎竴杞細8,10,7,9->(iTemp=8)8,10,7,9->(iTemp=7)8,10,7,9->(iTemp=7)7,10,8,9(浜ゆ崲1嬈? 絎簩杞細7,10,8,9->(iTemp=8)7,10,8,9->(iTemp=8)7,8,10,9(浜ゆ崲1嬈? 絎竴杞細7,8,10,9->(iTemp=9)7,8,9,10(浜ゆ崲1嬈? 寰幆嬈℃暟錛?嬈? 浜ゆ崲嬈℃暟錛?嬈? 閬楁喚鐨勬槸綆楁硶闇瑕佺殑寰幆嬈℃暟渚濈劧鏄?/2*(n-1)*n銆傛墍浠ョ畻娉曞鏉傚害涓篛(n*n)銆? 鎴戜滑鏉ョ湅浠栫殑浜ゆ崲銆傜敱浜庢瘡嬈″灞傚驚鐜彧浜х敓涓嬈′氦鎹紙鍙湁涓涓渶灝忓鹼級銆傛墍浠(n)<=n 鎵浠ユ垜浠湁f(n)=O(n)銆?br />鎵浠ワ紝鍦ㄦ暟鎹緝涔辯殑鏃跺欙紝鍙互鍑忓皯涓瀹氱殑浜ゆ崲嬈℃暟銆? 4.鎻掑叆娉曪細 鎻掑叆娉曡緝涓哄鏉傦紝瀹冪殑鍩烘湰宸ヤ綔鍘熺悊鏄娊鍑虹墝錛屽湪鍓嶉潰鐨勭墝涓鎵劇浉搴旂殑浣嶇疆鎻掑叆錛岀劧鍚庣戶緇笅涓寮? #include <iostream.h> void InsertSort(int* pData,int Count) { int iTemp; int iPos; for(int i=1;i<Count;i++) { iTemp = pData[i]; iPos = i-1; while((iPos>=0) && (iTemp<pData[iPos])) { pData[iPos+1] = pData[iPos]; iPos--; } pData[iPos+1] = iTemp; } } void main() { int data[] = {10,9,8,7,6,5,4}; InsertSort(data,7); for (int i=0;i<7;i++) cout<<data[i]<<" "; cout<<"\n"; } 鍊掑簭(鏈緋熸儏鍐? 絎竴杞細10,9,8,7->9,10,8,7(浜ゆ崲1嬈?(寰幆1嬈? 絎簩杞細9,10,8,7->8,9,10,7(浜ゆ崲1嬈?(寰幆2嬈? 絎竴杞細8,9,10,7->7,8,9,10(浜ゆ崲1嬈?(寰幆3嬈? 寰幆嬈℃暟錛?嬈? 浜ゆ崲嬈℃暟錛?嬈? 鍏朵粬錛? 絎竴杞細8,10,7,9->8,10,7,9(浜ゆ崲0嬈?(寰幆1嬈? 絎簩杞細8,10,7,9->7,8,10,9(浜ゆ崲1嬈?(寰幆2嬈? 絎竴杞細7,8,10,9->7,8,9,10(浜ゆ崲1嬈?(寰幆1嬈? 寰幆嬈℃暟錛?嬈? 浜ゆ崲嬈℃暟錛?嬈? 涓婇潰緇撳熬鐨勮涓哄垎鏋愪簨瀹炰笂閫犳垚浜嗕竴縐嶅亣璞★紝璁╂垜浠涓鴻繖縐嶇畻娉曟槸綆鍗曠畻娉曚腑鏈濂界殑錛屽叾瀹炰笉鏄紝鍥犱負鍏跺驚鐜鏁拌櫧鐒跺茍涓嶅浐瀹氾紝鎴戜滑浠嶅彲浠ヤ嬌鐢∣鏂?娉曘備粠涓婇潰鐨勭粨鏋滃彲浠ョ湅鍑猴紝寰幆鐨勬鏁癴(n)<= 1/2*n*(n-1)<=1/2*n*n銆傛墍浠ュ叾澶嶆潅搴︿粛涓篛(n*n)錛堣繖閲岃鏄庝竴涓嬶紝鍏跺疄濡傛灉涓嶆槸涓轟簡灞曠ず榪欎簺綆鍗曟帓搴忕殑涓嶅悓錛屼氦鎹㈡鏁頒粛鐒?鍙互榪欐牱鎺ㄥ錛夈傜幇鍦ㄧ湅浜ゆ崲錛屼粠澶栬涓婄湅錛屼氦鎹㈡鏁版槸O(n)錛堟帹瀵肩被浼奸夋嫨娉曪級錛屼絾鎴戜滑姣忔瑕佽繘琛屼笌鍐呭眰寰幆鐩稿悓嬈℃暟鐨?#8216;=’鎿嶄綔銆傛甯哥殑涓嬈′氦鎹㈡垜浠?闇瑕佷笁嬈?#8216;=’錛岃岃繖閲屾樉鐒跺浜嗕竴浜涳紝鎵浠ユ垜浠氮璐逛簡鏃墮棿銆? 鏈緇堬紝鎴戜釜浜鴻涓猴紝鍦ㄧ畝鍗曟帓搴忕畻娉曚腑錛岄夋嫨娉曟槸鏈濂界殑銆? 浜屻侀珮綰ф帓搴忕畻娉曪細 楂樼駭鎺掑簭綆楁硶涓垜浠皢鍙粙緇嶈繖涓縐嶏紝鍚屾椂涔熸槸鐩墠鎴戞墍鐭ラ亾錛堟垜鐪嬭繃鐨勮祫鏂欎腑錛夌殑鏈蹇殑銆? 瀹冪殑宸ヤ綔鐪嬭搗鏉ヤ粛鐒惰薄涓涓簩鍙夋爲銆傞鍏堟垜浠夋嫨涓涓腑闂村糾iddle紼嬪簭涓垜浠嬌鐢ㄦ暟緇勪腑闂村鹼紝鐒跺悗鎶婃瘮瀹冨皬鐨勬斁鍦ㄥ乏杈癸紝澶х殑鏀懼湪鍙寵竟錛堝叿浣撶殑瀹炵幇鏄粠涓よ竟鎵撅紝鎵懼埌涓瀵瑰悗浜ゆ崲錛夈傜劧鍚庡涓よ竟鍒嗗埆浣跨敤榪欎釜榪囩▼錛堟渶瀹規槗鐨勬柟娉?#8212;—閫掑綊錛夈? 1.蹇熸帓搴忥細 #include <iostream.h> void run(int* pData,int left,int right) { int i,j; int middle,iTemp; i = left; j = right; middle = pData[(left+right)/2]; //姹備腑闂村? do{ while((pData[i]<middle) && (i<right))//浠庡乏鎵弿澶т簬涓肩殑鏁? i++; while((pData[j]>middle) && (j>left))//浠庡彸鎵弿澶т簬涓肩殑鏁? j--; if(i<=j)//鎵懼埌浜嗕竴瀵瑰? { //浜ゆ崲 iTemp = pData[i]; pData[i] = pData[j]; pData[j] = iTemp; i++; j--; } }while(i<=j);//濡傛灉涓よ竟鎵弿鐨勪笅鏍囦氦閿欙紝灝卞仠姝紙瀹屾垚涓嬈★級 //褰撳乏杈歸儴鍒嗘湁鍊?left<j)錛岄掑綊宸﹀崐杈? if(left<j) run(pData,left,j); //褰撳彸杈歸儴鍒嗘湁鍊?right>i)錛岄掑綊鍙沖崐杈? if(right>i) run(pData,i,right); } void QuickSort(int* pData,int Count) { run(pData,0,Count-1); } void main() { int data[] = {10,9,8,7,6,5,4}; QuickSort(data,7); for (int i=0;i<7;i++) cout<<data[i]<<" "; cout<<"\n"; } 榪欓噷鎴戞病鏈夌粰鍑鴻涓虹殑鍒嗘瀽錛屽洜涓鴻繖涓緢綆鍗曪紝鎴戜滑鐩存帴鏉ュ垎鏋愮畻娉曪細棣栧厛鎴戜滑鑰冭檻鏈鐞嗘兂鐨勬儏鍐? 1.鏁扮粍鐨勫ぇ灝忔槸2鐨勫箓錛岃繖鏍峰垎涓嬪幓濮嬬粓鍙互琚?鏁撮櫎銆傚亣璁句負2鐨刱嬈℃柟錛屽嵆k=log2(n)銆? 2.姣忔鎴戜滑閫夋嫨鐨勫煎垰濂芥槸涓棿鍊鹼紝榪欐牱錛屾暟緇勬墠鍙互琚瓑鍒嗐? 絎竴灞傞掑綊錛屽驚鐜痭嬈★紝絎簩灞傚驚鐜?*(n/2)...... 鎵浠ュ叡鏈塶+2(n/2)+4(n/4)+...+n*(n/n) = n+n+n+...+n=k*n=log2(n)*n 鎵浠ョ畻娉曞鏉傚害涓篛(log2(n)*n) 鍏朵粬鐨勬儏鍐靛彧浼氭瘮榪欑鎯呭喌宸紝鏈宸殑鎯呭喌鏄瘡嬈¢夋嫨鍒扮殑middle閮芥槸鏈灝忓兼垨鏈澶у鹼紝閭d箞浠栧皢鍙樻垚浜ゆ崲娉曪紙鐢變簬浣跨敤浜嗛掑綊錛屾儏鍐墊洿緋燂級銆備絾鏄綘璁や負榪欑鎯呭喌鍙戠敓鐨勫嚑鐜囨湁澶氬ぇ錛燂紵鍛靛懙錛屼綘瀹屽叏涓嶅繀鎷呭績榪欎釜闂銆傚疄璺佃瘉鏄庯紝澶у鏁扮殑鎯呭喌錛屽揩閫熸帓搴忔繪槸鏈濂界殑銆? 濡傛灉浣犳媴蹇冭繖涓棶棰橈紝浣犲彲浠ヤ嬌鐢ㄥ爢鎺掑簭錛岃繖鏄竴縐嶇ǔ瀹氱殑O(log2(n)*n)綆楁硶錛屼絾鏄氬父鎯呭喌涓嬮熷害瑕佹參 浜庡揩閫熸帓搴忥紙鍥犱負瑕侀噸緇勫爢錛夈? 涓夈佸叾浠栨帓搴? 1.鍙屽悜鍐掓場錛? 閫氬父鐨勫啋娉℃槸鍗曞悜鐨勶紝鑰岃繖閲屾槸鍙屽悜鐨勶紝涔熷氨鏄榪樿榪涜鍙嶅悜鐨勫伐浣溿? 浠g爜鐪嬭搗鏉ュ鏉傦紝浠旂粏鐞嗕竴涓嬪氨鏄庣櫧浜嗭紝鏄竴涓潵鍥為渿鑽$殑鏂瑰紡銆? 鍐欒繖孌典唬鐮佺殑浣滆呰涓鴻繖鏍峰彲浠ュ湪鍐掓場鐨勫熀紜涓婂噺灝戜竴浜涗氦鎹紙鎴戜笉榪欎箞璁や負錛屼篃璁告垜閿欎簡錛夈? 鍙嶆鎴戣涓鴻繖鏄竴孌墊湁瓚g殑浠g爜錛屽煎緱涓鐪嬨? #include <iostream.h> void Bubble2Sort(int* pData,int Count) { int iTemp; int left = 1; int right =Count -1; int t; do { //姝e悜鐨勯儴鍒? for(int i=right;i>=left;i--) { if(pData[i]<pData[i-1]) { iTemp = pData[i]; pData[i] = pData[i-1]; pData[i-1] = iTemp; t = i; } } left = t+1; //鍙嶅悜鐨勯儴鍒? for(i=left;i<right+1;i++) { if(pData[i]<pData[i-1]) { iTemp = pData[i]; pData[i] = pData[i-1]; pData[i-1] = iTemp; t = i; } } right = t-1; }while(left<=right); } void main() { int data[] = {10,9,8,7,6,5,4}; Bubble2Sort(data,7); for (int i=0;i<7;i++) cout<<data[i]<<" "; cout<<"\n"; } 2.SHELL鎺掑簭 榪欎釜鎺掑簭闈炲父澶嶆潅錛岀湅浜嗙▼搴忓氨鐭ラ亾浜嗐? 棣栧厛闇瑕佷竴涓掑噺鐨勬闀匡紝榪欓噷鎴戜滑浣跨敤鐨勬槸9銆?銆?銆?錛堟渶鍚庣殑姝ラ暱蹇呴』鏄?錛夈? 宸ヤ綔鍘熺悊鏄鍏堝鐩擱殧9-1涓厓绱犵殑鎵鏈夊唴瀹規帓搴忥紝鐒跺悗鍐嶄嬌鐢ㄥ悓鏍風殑鏂規硶瀵圭浉闅?-1涓厓绱犵殑鎺掑簭浠ユ綾繪帹銆? #include <iostream.h> void ShellSort(int* pData,int Count) { int step[4]; step[0] = 9; step[1] = 5; step[2] = 3; step[3] = 1; int iTemp; int k,s,w; for(int i=0;i<4;i++) { k = step[i]; s = -k; for(int j=k;j<Count;j++) { iTemp = pData[j]; w = j-k;//姹備笂step涓厓绱犵殑涓嬫爣 if(s ==0) { s = -k; s++; pData[s] = iTemp; } while((iTemp<pData[w]) && (w>=0) && (w<=Count)) { pData[w+k] = pData[w]; w = w-k; } pData[w+k] = iTemp; } } } void main() { int data[] = {10,9,8,7,6,5,4,3,2,1,-10,-1}; ShellSort(data,12); for (int i=0;i<12;i++) cout<<data[i]<<" "; cout<<"\n"; } 鍛靛懙錛岀▼搴忕湅璧鋒潵鏈変簺澶寸柤銆備笉榪囦篃涓嶆槸寰堥毦錛屾妸s==0鐨勫潡鍘繪帀灝辮交鏉懼浜嗭紝榪欓噷鏄伩鍏嶄嬌鐢?姝ラ暱閫犳垚紼嬪簭寮傚父鑰屽啓鐨勪唬鐮併傝繖涓唬鐮佹垜璁や負寰堝煎緱涓鐪嬨? 榪欎釜綆楁硶鐨勫緱鍚嶆槸鍥犱負鍏跺彂鏄庤呯殑鍚嶅瓧D.L.SHELL銆備緷鐓у弬鑰冭祫鏂欎笂鐨勮娉曪細“鐢變簬澶嶆潅鐨勬暟瀛﹀師鍥犻伩鍏嶄嬌鐢?鐨勫箓嬈℃闀匡紝瀹冭兘闄嶄綆綆楁硶鏁堢巼銆?#8221;鍙﹀綆楁硶鐨勫鏉傚害涓簄鐨?.2嬈″箓銆傚悓鏍峰洜涓洪潪甯稿鏉傚茍“瓚呭嚭鏈功璁ㄨ鑼冨洿”鐨勫師鍥狅紙鎴戜篃涓嶇煡閬撹繃紼嬶級錛屾垜浠彧鏈夌粨鏋滀簡銆? 鏈鍚庯紝甯屾湜澶у鎰夊揩鐨勭紪紼嬨傛湁浠涔堟剰瑙侊紝緇欐垜鎻愬惂錛? ]]> "娌℃湁鎵懼埌MFC80D.DLL"闂鐨勮В鍐蟲柟娉?杞? http://m.shnenglu.com/softko/archive/2011/05/17/146539.htmleircQ eircQ Tue, 17 May 2011 01:31:00 GMT http://m.shnenglu.com/softko/archive/2011/05/17/146539.html http://m.shnenglu.com/softko/comments/146539.html http://m.shnenglu.com/softko/archive/2011/05/17/146539.html#Feedback 0 http://m.shnenglu.com/softko/comments/commentRss/146539.html http://m.shnenglu.com/softko/services/trackbacks/146539.html 鐢╒S2005璋冭瘯涓涓▼搴忥紝鍑虹幇“娌℃湁鎵懼埌MFC80D.DLL……”鐨勬彁紺轟嬌紼嬪簭涓嶈兘榪愯錛屽垹鎺塂ebug鏂囦歡澶歸噸鏂扮紪璇戦棶棰樹緷鏃э紝涓婄綉鏌ヤ簡涓涓嬶紝鏈夎鏄痸s璺緞鐨勫師鍥狅紝鏈夎鏄痸s娌¤濂界殑鍘熷洜銆?/font>
鍦?#8220;鍚姩璋冭瘯F5”鐨勫伐鍏峰浘鏍囧彸渚ф湁涓鏍?#8220;瑙e喅鏂規閰嶇疆”錛屾棤鎰忎腑灝嗗叾涓殑“Debug”鏀逛負“Release”錛孎5閫氳繃錛岃繍琛屾甯革紝欏圭洰鐩綍涓嬬敓鎴?#8220;Release”鏂囦歡澶癸紝Debug鏂瑰紡鐢熸垚鐨?#8220;Debug"鏂囦歡澶規槸鏃犵敤鐨勩傚師鍥犲涓嬶細
DEBUG鍜孯ELEASE 鐗堟湰宸紓鍙婅皟璇曠浉鍏抽棶棰橈細 I. 鍐呭瓨鍒嗛厤闂
1. 鍙橀噺鏈垵濮嬪寲銆備笅闈㈢殑紼嬪簭鍦╠ebug涓繍琛岀殑寰堝ソ銆?/font>
thing * search(thing * something) BOOL found; for(int i = 0; i < whatever.GetSize(); i++) { if(whatever[i]->field == something->field) { /* found it */ found = TRUE; break; } /* found it */ } if(found) return whatever[i]; else return NULL; 鑰屽湪release涓嵈涓嶈錛屽洜涓篸ebug涓細鑷姩緇欏彉閲忓垵濮嬪寲found=FALSE,鑰屽湪release鐗堜腑鍒欎笉浼氥傛墍浠ュ敖鍙兘鐨勭粰鍙橀噺銆佺被鎴栫粨鏋勫垵濮嬪寲銆?/font>
2. 鏁版嵁婧㈠嚭鐨勯棶棰?nbsp; 濡傦細char buffer[10]; int counter; lstrcpy(buffer, "abcdefghik");
鍦╠ebug鐗堜腑buffer鐨凬ULL瑕嗙洊浜哻ounter鐨勯珮浣嶏紝浣嗘槸闄ら潪counter>16M,浠涔堥棶棰樹篃娌℃湁銆備絾鏄湪release鐗堜腑錛宑ounter鍙兘琚斁鍦ㄥ瘎瀛樺櫒涓紝榪欐牱NULL灝辮鐩栦簡buffer涓嬮潰鐨勭┖闂達紝鍙兘灝辨槸鍑芥暟鐨勮繑鍥炲湴鍧錛岃繖灝嗗鑷碅CCESS ERROR銆?br /> 3. DEBUG鐗堝拰RELEASE鐗堢殑鍐呭瓨鍒嗛厤鏂瑰紡鏄笉鍚岀殑銆傚鏋滀綘鍦―EBUG鐗堜腑鐢寵 ele 涓?6*sizeof(DWORD)=24bytes,瀹為檯涓婂垎閰嶇粰浣犵殑鏄?2bytes錛坉ebug鐗堜互32bytes涓哄崟浣嶅垎閰嶏級錛岃屽湪release鐗堬紝鍒嗛厤緇欎綘鐨勫氨鏄?4bytes錛坮elease鐗堜互8bytes涓哄崟浣嶏級錛屾墍浠ュ湪debug鐗堜腑濡傛灉浣犲啓ele[6],鍙兘涓嶄細鏈変粈涔堥棶棰橈紝鑰屽湪release鐗堜腑錛屽氨鏈堿CCESS VIOLATE銆?/font>
II. ASSERT鍜孷ERIFY
1. ASSERT鍦≧elease鐗堟湰涓槸涓嶄細琚紪璇戠殑銆?/font>
ASSERT瀹忔槸榪欐牱瀹氫箟鐨?/font>
#ifdef _DEBUG #define ASSERT(x) if( (x) == 0) report_assert_failure() #else #define ASSERT(x) #endif 瀹為檯涓婂鏉備竴浜涳紝浣嗘棤鍏崇揣瑕併傚亣濡備綘鍦ㄨ繖浜涜鍙ヤ腑鍔犱簡紼嬪簭涓繀欏昏鏈夌殑浠g爜 姣斿
ASSERT(pNewObj = new CMyClass);
pNewObj->MyFunction();
榪欑鏃跺橰elease鐗堟湰涓殑pNewObj涓嶄細鍒嗛厤鍒扮┖闂?/font>
鎵浠ユ墽琛屽埌涓嬩竴涓鍙ョ殑鏃跺欑▼搴忎細鎶ヨ紼嬪簭鎵ц浜嗛潪娉曟搷浣滅殑閿欒銆傝繖鏃跺彲浠ョ敤VERIFY 錛?/font>
#ifdef _DEBUG #define VERIFY(x) if( (x) == 0) report_assert_failure() #else
#define VERIFY(x) (x) #endif 榪欐牱鐨勮瘽錛屼唬鐮佸湪release鐗堜腑灝卞彲浠ユ墽琛屼簡銆?/font>
III. 鍙傛暟闂錛?/font>
鑷畾涔夋秷鎭殑澶勭悊鍑芥暟錛屽繀欏誨畾涔夊涓嬶細
afx_msg LRESULT OnMyMessage(WPARAM, LPARAM);
榪斿洖鍊煎繀欏繪槸HRESULT鍨嬶紝鍚﹀垯Debug浼氳繃錛岃孯elease鍑洪敊
IV. 鍐呭瓨鍒嗛厤
淇濊瘉鏁版嵁鍒涘緩鍜屾竻闄ょ殑緇熶竴鎬э細濡傛灉涓涓狣LL鎻愪緵涓涓兘澶熷垱寤烘暟鎹殑鍑芥暟錛岄偅涔堣繖涓狣LL鍚屾椂搴旇鎻愪緵涓涓嚱鏁伴攢姣佽繖浜涙暟鎹傛暟鎹殑鍒涘緩鍜屾竻闄ゅ簲璇ュ湪鍚屼竴涓眰嬈′笂銆?/font>
V. DLL鐨勭伨闅?/font>
浜轟滑灝嗕笉鍚岀増鏈珼LL娣峰悎閫犳垚鐨勪笉涓鑷存у艦璞$殑縐頒負 “鍔ㄦ佽繛鎺ュ簱鐨勫湴鐙?#8220;(DLL Hell) 錛岀敋鑷沖井杞嚜宸變篃榪欎箞璇?http://msdn.microsoft.com/library/techart/dlldanger1.htm)銆?/font>
濡傛灉浣犵殑紼嬪簭浣跨敤浣犺嚜宸辯殑DLL鏃惰娉ㄦ剰錛?/font>
1. 涓嶈兘灝哾ebug鍜宺elease鐗堢殑DLL娣峰悎鍦ㄤ竴璧蜂嬌鐢ㄣ俤ebug閮芥槸debug鐗堬紝release鐗堥兘鏄痳elease鐗堛?/font>
瑙e喅鍔炴硶鏄皢debug鍜宺elease鐨勭▼搴忓垎鍒斁鍦ㄤ富紼嬪簭鐨刣ebug鍜宺elease鐩綍涓?/font>
2. 鍗冧竾涓嶈浠ヤ負闈欐佽繛鎺ュ簱浼氳В鍐抽棶棰橈紝閭e彧浼氫嬌鎯呭喌鏇寸碂緋曘?/font>
VI. RELEASE鏉夸腑鐨勮皟璇曪細
1. 灝咥SSERT() 鏀逛負 VERIFY() 銆傛壘鍑哄畾涔夊湪"#ifdef _DEBUG"涓殑浠g爜錛屽鏋滃湪RELEASE鐗堟湰涓渶瑕佽繖浜涗唬鐮佽灝嗕粬浠Щ鍒板畾涔夊銆傛煡鎵綯RACE(...)涓唬鐮侊紝鍥犱負榪欎簺浠g爜鍦≧ELEASE涓篃涓嶈緙栬瘧銆傝璁ょ湡媯鏌ラ偅浜涘湪RELEASE涓渶瑕佺殑浠g爜鏄惁騫舵病鏈夎渚垮疁銆?/p>
2. 鍙橀噺鐨勫垵濮嬪寲鎵甯︽潵鐨勪笉鍚岋紝鍦ㄤ笉鍚岀殑緋葷粺錛屾垨鏄湪DEBUG/RELEASE鐗堟湰闂撮兘瀛樺湪榪欐牱鐨勫樊寮傦紝鎵浠ヨ瀵瑰彉閲忚繘琛屽垵濮嬪寲銆?/p>
3. 鏄惁鍦ㄧ紪璇戞椂宸茬粡鏈変簡璀﹀憡?璇峰皢璀﹀憡綰у埆璁劇疆涓?鎴?,鐒跺悗淇濊瘉鍦ㄧ紪璇戞椂娌℃湁璀﹀憡鍑虹幇.
VII. 灝哖roject Settings" 涓?"C++/C " 欏圭洰涓嬩紭鍖栭夐」鏀逛負Disbale錛圖ebug錛夈傜紪璇戝櫒鐨勪紭鍖栧彲鑳藉鑷磋澶氭剰鎯充笉鍒扮殑閿欒錛岃鍙傝僪ttp://www.pgh.net/~newcomer/debug_release.htm
1. 姝ゅ瀵筊ELEASE鐗堟湰鐨勮蔣浠朵篃鍙互榪涜璋冭瘯錛岃鍋氬涓嬫敼鍔細
鍦?Project Settings" 涓?"C++/C " 欏圭洰涓嬭緗?"category" 涓?"General" 騫朵笖灝?Debug Info"璁劇疆涓?"Program Database"銆?/p>
鍦?"Link"欏圭洰涓嬮変腑"Generate Debug Info"媯鏌ユ銆?/p>
"Rebuild All"
濡傛鍋氭硶浼氫駭鐢熺殑涓浜涢檺鍒訛細
鏃犳硶鑾峰緱鍦∕FC DLL涓殑鍙橀噺鐨勫箋?/p>
蹇呴』瀵硅杞歡鎵浣跨敤鐨勬墍鏈塂LL宸ョ▼閮借繘琛屾敼鍔ㄣ?/p>
鍙︼細
MS BUG錛歁S鐨勪竴浠芥妧鏈枃妗d腑琛ㄦ槑錛屽湪VC5涓浜嶥LL鐨?Maximize Speed"浼樺寲閫夐」騫舵湭琚畬鍏ㄦ敮鎸侊紝鍥犳榪欏皢浼氬紩璧峰唴瀛橀敊璇茍瀵艱嚧紼嬪簭宕╂簝銆?/p>
2. www.sysinternals.com鏈変竴涓▼搴廌ebugView錛岀敤鏉ユ崟鎹塐utputDebugString鐨勮緭鍑猴紝榪愯璧鋒潵鍚庯紙浼拌鏄嚜璁句負system debugger錛夊氨鍙互瑙傜湅鎵鏈夌▼搴忕殑OutputDebugString鐨勮緭鍑恒傛鍚庯紝浣犲彲浠ヨ劚紱籚C鏉ヨ繍琛屼綘鐨勭▼搴忓茍瑙傜湅璋冭瘯淇℃伅銆?/p>
3. 鏈変竴涓彨Gimpel Lint鐨勯潤鎬佷唬鐮佹鏌ュ伐鍏鳳紝鎹姣旇緝濂界敤銆俬ttp://www.gimpel.com 涓嶈繃瑕佸寲$鐨勩?/p>
鍙傝冩枃鐚細
1) http://www.cygnus-software.com/papers/release_debugging.html
2) http://www.pgh.net/~newcomer/debug_release.htm
]]> Hash 綆楁硶鍙婂叾搴旂敤(杞? http://m.shnenglu.com/softko/archive/2010/12/02/135309.htmleircQ eircQ Thu, 02 Dec 2010 15:08:00 GMT http://m.shnenglu.com/softko/archive/2010/12/02/135309.html http://m.shnenglu.com/softko/comments/135309.html http://m.shnenglu.com/softko/archive/2010/12/02/135309.html#Feedback 0 http://m.shnenglu.com/softko/comments/commentRss/135309.html http://m.shnenglu.com/softko/services/trackbacks/135309.html 鏈燂細2004-07-30] 鏉ユ簮錛?a target="_blank" style="color: rgb(65, 81, 154); text-decoration: none; ">CSDN 浣滆咃細 [瀛椾綋錛?a style="color: rgb(65, 81, 154); text-decoration: none; ">澶?/a> 涓?/a> 灝?/a>] --------------- 浠涔堟槸 Hash Hash 鐨勯噸瑕佺壒鎬?nbsp; Hash 鍑芥暟鐨勫疄鐜?nbsp; 涓昏鐨?Hash 綆楁硶 Hash 綆楁硶鐨勫畨鍏ㄩ棶棰?nbsp; Hash 綆楁硶鐨勫簲鐢?nbsp; 緇?璁?nbsp; ---------------
Hash錛屼竴鑸炕璇戝仛“鏁e垪”錛屼篃鏈夌洿鎺ラ煶璇戜負"鍝堝笇"鐨勶紝灝辨槸鎶婁換鎰忛暱搴︾殑杈撳叆錛堝張鍙仛棰勬槧灝勶紝 pre-image錛夛紝閫氳繃鏁e垪綆楁硶錛屽彉鎹㈡垚鍥哄畾闀垮害鐨勮緭鍑猴紝璇ヨ緭鍑哄氨鏄暎鍒楀箋傝繖縐嶈漿鎹㈡槸涓縐嶅帇緙╂槧灝勶紝涔熷氨鏄紝鏁e垪鍊肩殑絀洪棿閫氬父榪滃皬浜庤緭鍏ョ殑絀洪棿錛屼笉鍚岀殑杈撳叆鍙兘浼氭暎鍒楁垚鐩稿悓鐨勮緭鍑猴紝鑰屼笉鍙兘浠庢暎鍒楀兼潵鍞竴鐨勭‘瀹氳緭鍏ュ箋?/p>
鏁板琛ㄨ堪涓猴細h = H(M) 錛屽叾涓璈( )--鍗曞悜鏁e垪鍑芥暟錛孧--浠繪剰闀垮害鏄庢枃錛宧--鍥哄畾闀垮害鏁e垪鍊箋?/p>
鍦ㄤ俊鎭畨鍏ㄩ鍩熶腑搴旂敤鐨凥ash綆楁硶錛岃繕闇瑕佹弧瓚沖叾浠栧叧閿壒鎬э細
絎竴褰撶劧鏄崟鍚戞?one-way)錛屼粠棰勬槧灝勶紝鑳藉綆鍗曡繀閫熺殑寰楀埌鏁e垪鍊鹼紝鑰屽湪璁$畻涓婁笉鍙兘鏋勯犱竴涓鏄犲皠錛屼嬌鍏舵暎鍒楃粨鏋滅瓑浜庢煇涓壒瀹氱殑鏁e垪鍊鹼紝鍗蟲瀯閫犵浉搴旂殑M=H-1(h)涓嶅彲琛屻傝繖鏍鳳紝鏁e垪鍊煎氨鑳藉湪緇熻涓婂敮涓鐨勮〃寰佽緭鍏ュ鹼紝鍥犳錛屽瘑鐮佸涓婄殑 Hash 鍙堣縐頒負"娑堟伅鎽樿(message digest)"錛屽氨鏄姹傝兘鏂逛究鐨勫皢"娑堟伅"榪涜"鎽樿"錛屼絾鍦?鎽樿"涓棤娉曞緱鍒版瘮"鎽樿"鏈韓鏇村鐨勫叧浜?娑堟伅"鐨勪俊鎭?/p>
絎簩鏄姉鍐茬獊鎬?collision-resistant)錛屽嵆鍦ㄧ粺璁′笂鏃犳硶浜х敓2涓暎鍒楀肩浉鍚岀殑棰勬槧灝勩傜粰瀹歁錛岃綆椾笂鏃犳硶鎵懼埌M'錛屾弧瓚矵(M)=H(M') 錛屾璋撳急鎶楀啿紿佹э紱璁$畻涓婁篃闅句互瀵繪壘涓瀵逛換鎰忕殑M鍜孧'錛屼嬌婊¤凍H(M)=H(M') 錛屾璋撳己鎶楀啿紿佹с傝姹?寮烘姉鍐茬獊鎬?涓昏鏄負浜嗛槻鑼冩墍璋?鐢熸棩鏀誨嚮(birthday attack)"錛屽湪涓涓?0浜虹殑鍥綋涓紝浣犺兘鎵懼埌鍜屼綘鐢熸棩鐩稿悓鐨勪漢鐨勬鐜囨槸2.4%錛岃屽湪鍚屼竴鍥綋涓紝鏈?浜虹敓鏃ョ浉鍚岀殑姒傜巼鏄?1.7%銆傜被浼肩殑錛屽綋棰勬槧灝勭殑絀洪棿寰堝ぇ鐨勬儏鍐典笅錛岀畻娉曞繀欏繪湁瓚沖鐨勫己搴︽潵淇濊瘉涓嶈兘杞繪槗鎵懼埌"鐩稿悓鐢熸棩"鐨勪漢銆?/p>
絎笁鏄槧灝勫垎甯冨潎鍖鎬у拰宸垎鍒嗗竷鍧囧寑鎬э紝鏁e垪緇撴灉涓紝涓?0 鐨?bit 鍜屼負 1 鐨?bit 錛屽叾鎬繪暟搴旇澶ц嚧鐩哥瓑錛涜緭鍏ヤ腑涓涓?bit 鐨勫彉鍖栵紝鏁e垪緇撴灉涓皢鏈変竴鍗婁互涓婄殑 bit 鏀瑰彉錛岃繖鍙堝彨鍋?闆穿鏁堝簲(avalanche effect)"錛涜瀹炵幇浣挎暎鍒楃粨鏋滀腑鍑虹幇 1bit 鐨勫彉鍖栵紝鍒欒緭鍏ヤ腑鑷沖皯鏈変竴鍗婁互涓婄殑 bit 蹇呴』鍙戠敓鍙樺寲銆傚叾瀹炶川鏄繀欏諱嬌杈撳叆涓瘡涓涓?bit 鐨勪俊鎭紝灝介噺鍧囧寑鐨勫弽鏄犲埌杈撳嚭鐨勬瘡涓涓?bit 涓婂幓錛涜緭鍑轟腑鐨勬瘡涓涓?bit錛岄兘鏄緭鍏ヤ腑灝藉彲鑳藉 bit 鐨勪俊鎭竴璧蜂綔鐢ㄧ殑緇撴灉銆?/p>
Damgard 鍜?Merkle 瀹氫箟浜嗘墍璋?#8220;鍘嬬緝鍑芥暟(compression function)”錛屽氨鏄皢涓涓浐瀹氶暱搴﹁緭鍏ワ紝鍙樻崲鎴愯緝鐭殑鍥哄畾闀垮害鐨勮緭鍑猴紝榪欏瀵嗙爜瀛﹀疄璺典笂 Hash 鍑芥暟鐨勮璁′駭鐢熶簡寰堝ぇ鐨勫獎鍝嶃侶ash鍑芥暟灝辨槸琚璁′負鍩轟簬閫氳繃鐗瑰畾鍘嬬緝鍑芥暟鐨勪笉鏂噸澶?#8220;鍘嬬緝”杈撳叆鐨勫垎緇勫拰鍓嶄竴嬈″帇緙╁鐞嗙殑緇撴灉鐨勮繃紼嬶紝鐩村埌鏁翠釜娑堟伅閮借鍘嬬緝瀹屾瘯錛屾渶鍚庣殑杈撳嚭浣滀負鏁翠釜娑堟伅鐨勬暎鍒楀箋傚敖綆¤繕緙轟箯涓ユ牸鐨勮瘉鏄庯紝浣嗙粷澶у鏁頒笟鐣岀殑鐮旂┒鑰呴兘鍚屾剰錛屽鏋滃帇緙╁嚱鏁版槸瀹夊叏鐨勶紝閭d箞浠ヤ笂榪板艦寮忔暎鍒椾換鎰忛暱搴︾殑娑堟伅涔熷皢鏄畨鍏ㄧ殑銆傝繖灝辨槸鎵璋?Damgard/Merkle 緇撴瀯錛?/p>
鍦ㄤ笅鍥句腑錛屼換鎰忛暱搴︾殑娑堟伅琚垎鎷嗘垚絎﹀悎鍘嬬緝鍑芥暟杈撳叆瑕佹眰鐨勫垎緇勶紝鏈鍚庝竴涓垎緇勫彲鑳介渶瑕佸湪鏈熬娣諱笂鐗瑰畾鐨勫~鍏呭瓧鑺傦紝榪欎簺鍒嗙粍灝嗚欏哄簭澶勭悊錛岄櫎浜嗙涓涓秷鎭垎緇勫皢涓庢暎鍒楀垵濮嬪寲鍊間竴璧蜂綔涓哄帇緙╁嚱鏁扮殑杈撳叆澶栵紝褰撳墠鍒嗙粍灝嗗拰鍓嶄竴涓垎緇勭殑鍘嬬緝鍑芥暟杈撳嚭涓璧瘋浣滀負榪欎竴嬈″帇緙╃殑杈撳叆錛岃屽叾杈撳嚭鍙堝皢琚綔涓轟笅涓涓垎緇勫帇緙╁嚱鏁拌緭鍏ョ殑涓閮ㄥ垎錛岀洿鍒版渶鍚庝竴涓帇緙╁嚱鏁扮殑杈撳嚭錛屽皢琚綔涓烘暣涓秷鎭暎鍒楃殑緇撴灉銆?/p>
MD5 鍜?SHA1 鍙互璇存槸鐩墠搴旂敤鏈騫挎硾鐨凥ash綆楁硶錛岃屽畠浠兘鏄互 MD4 涓哄熀紜璁捐鐨勩?/p>
1) MD4 MD4(RFC 1320)鏄?MIT 鐨?Ronald L. Rivest 鍦?1990 騫磋璁$殑錛孧D 鏄?Message Digest 鐨勭緝鍐欍傚畠閫傜敤鍦?2浣嶅瓧闀跨殑澶勭悊鍣ㄤ笂鐢ㄩ珮閫熻蔣浠跺疄鐜?-瀹冩槸鍩轟簬 32 浣嶆搷浣滄暟鐨勪綅鎿嶄綔鏉ュ疄鐜扮殑銆傚畠鐨勫畨鍏ㄦт笉鍍廟SA閭f牱鍩轟簬鏁板鍋囪錛屽敖綆?Den Boer銆丅osselaers 鍜?Dobbertin 寰堝揩灝辯敤鍒嗘瀽鍜屽樊鍒嗘垚鍔熺殑鏀誨嚮浜嗗畠3杞彉鎹腑鐨?2 杞紝璇佹槑浜嗗畠騫朵笉鍍忔湡鏈涚殑閭f牱瀹夊叏錛屼絾瀹冪殑鏁翠釜綆楁硶騫舵病鏈夌湡姝h鐮磋В榪囷紝Rivest 涔熷緢蹇繘琛屼簡鏀硅繘銆?/p>
涓嬮潰鏄竴浜汳D4鏁e垪緇撴灉鐨勪緥瀛愶細
MD4 ("") = 31d6cfe0d16ae931b73c59d7e0c089c0 MD4 ("a") = bde52cb31de33e46245e05fbdbd6fb24 MD4 ("abc") = a448017aaf21d8525fc10ae87aa6729d MD4 ("message digest") = d9130a8164549fe818874806e1c7014b MD4 ("abcdefghijklmnopqrstuvwxyz") = d79e1c308aa5bbcdeea8ed63df412da9 MD4 ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") = 043f8582f241db351ce627e153e7f0e4 MD4 ("12345678901234567890123456789012345678901234567890123456789012345678901234567890") = e33b4ddc9c38f2199c3e7b164fcc0536
2) MD5 MD5(RFC 1321)鏄?Rivest 浜?991騫村MD4鐨勬敼榪涚増鏈傚畠瀵硅緭鍏ヤ粛浠?12浣嶅垎緇勶紝鍏惰緭鍑烘槸4涓?2浣嶅瓧鐨勭駭鑱旓紝涓?MD4 鐩稿悓銆傚畠杈僊D4鎵鍋氱殑鏀硅繘鏄細
1) 鍔犲叆浜嗙鍥涜疆 2) 姣忎竴姝ラ兘鏈夊敮涓鐨勫姞娉曞父鏁幫紱 3) 絎簩杞腑鐨凣鍑芥暟浠?(X 鈭?Y) 鈭?(X 鈭?Z) 鈭?(Y 鈭?Z)) 鍙樹負 ((X 鈭?Z) 鈭?(Y 鈭?锝瀂))浠ュ噺灝忓叾瀵圭О鎬э紱 4) 姣忎竴姝ラ兘鍔犲叆浜嗗墠涓姝ョ殑緇撴灉錛屼互鍔犲揩"闆穿鏁堝簲"錛?nbsp; 5) 鏀瑰彉浜嗙2杞拰絎?杞腑璁塊棶杈撳叆瀛愬垎緇勭殑欏哄簭錛屽噺灝忎簡褰㈠紡鐨勭浉浼肩▼搴︼紱 6) 榪戜技浼樺寲浜嗘瘡杞殑寰幆宸︾Щ浣嶇Щ閲忥紝浠ユ湡鍔犲揩"闆穿鏁堝簲"錛屽悇杞殑寰幆宸︾Щ閮戒笉鍚屻?nbsp; 灝界MD5姣擬D4鏉ュ緱澶嶆潅錛屽茍涓旈熷害杈冧箣瑕佹參涓鐐癸紝浣嗘洿瀹夊叏錛屽湪鎶楀垎鏋愬拰鎶楀樊鍒嗘柟闈㈣〃鐜版洿濂姐?/p>
娑堟伅棣栧厛琚媶鎴愯嫢騫蹭釜512浣嶇殑鍒嗙粍錛屽叾涓渶鍚?12浣嶄竴涓垎緇勬槸“娑堟伅灝?濉厖瀛楄妭(100…0)+64 浣嶆秷鎭暱搴?#8221;錛屼互紜繚瀵逛簬涓嶅悓闀垮害鐨勬秷鎭紝璇ュ垎緇勪笉鐩稿悓銆?4浣嶆秷鎭暱搴︾殑闄愬埗瀵艱嚧浜哅D5瀹夊叏鐨勮緭鍏ラ暱搴﹀繀欏誨皬浜?64bit錛屽洜涓哄ぇ浜?4浣嶇殑闀垮害淇℃伅灝嗚蹇界暐銆傝?涓?2浣嶅瘎瀛樺櫒瀛楀垵濮嬪寲涓篈=0x01234567錛孊=0x89abcdef錛孋=0xfedcba98錛孌=0x76543210錛屽畠浠皢濮嬬粓鍙備笌榪愮畻騫跺艦鎴愭渶緇堢殑鏁e垪緇撴灉銆?/p>
鎺ョ潃鍚勪釜512浣嶆秷鎭垎緇勪互16涓?2浣嶅瓧鐨勫艦寮忚繘鍏ョ畻娉曠殑涓誨驚鐜紝512浣嶆秷鎭垎緇勭殑涓暟鎹喅瀹氫簡寰幆鐨勬鏁般備富寰幆鏈?杞紝姣忚疆鍒嗗埆鐢ㄥ埌浜嗛潪綰挎у嚱鏁?/p>
F(X, Y, Z) = (X 鈭?Y) 鈭?(锝瀀 鈭?Z) G(X, Y, Z) = (X 鈭?Z) 鈭?(Y 鈭?锝瀂) H(X, Y, Z) =X ⊕ Y ⊕ Z I(X, Y, Z) = X ⊕ (Y 鈭?锝瀂) 榪?杞彉鎹㈡槸瀵硅繘鍏ヤ富寰幆鐨?12浣嶆秷鎭垎緇勭殑16涓?2浣嶅瓧鍒嗗埆榪涜濡備笅鎿嶄綔錛氬皢A銆丅銆丆銆丏鐨勫壇鏈琣銆乥銆乧銆乨涓殑3涓粡F銆丟銆丠銆両榪愮畻鍚庣殑緇撴灉涓庣4涓浉鍔狅紝鍐嶅姞涓?2浣嶅瓧鍜屼竴涓?2浣嶅瓧鐨勫姞娉曞父鏁幫紝騫跺皢鎵寰椾箣鍊煎驚鐜乏縐昏嫢騫蹭綅錛屾渶鍚庡皢鎵寰楃粨鏋滃姞涓奱銆乥銆乧銆乨涔嬩竴錛屽茍鍥為佽嚦ABCD錛岀敱姝ゅ畬鎴愪竴嬈″驚鐜?/p>
鎵鐢ㄧ殑鍔犳硶甯告暟鐢辮繖鏍蜂竴寮犺〃T[i]鏉ュ畾涔夛紝鍏朵腑i涓?…64錛孴[i]鏄痠鐨勬寮︾粷瀵瑰間箣4294967296嬈℃柟鐨勬暣鏁伴儴鍒嗭紝榪欐牱鍋氭槸涓轟簡閫氳繃姝e雞鍑芥暟鍜屽箓鍑芥暟鏉ヨ繘涓姝ユ秷闄ゅ彉鎹腑鐨勭嚎鎬фс?/p>
褰撴墍鏈?12浣嶅垎緇勯兘榪愮畻瀹屾瘯鍚庯紝ABCD鐨勭駭鑱斿皢琚緭鍑轟負MD5鏁e垪鐨勭粨鏋溿備笅闈㈡槸涓浜汳D5鏁e垪緇撴灉鐨勪緥瀛愶細
MD5 ("") = d41d8cd98f00b204e9800998ecf8427e MD5 ("a") = 0cc175b9c0f1b6a831c399e269772661 MD5 ("abc") = 900150983cd24fb0d6963f7d28e17f72 MD5 ("message digest") = f96b697d7cb7938d525a2f31aaf161d0 MD5 ("abcdefghijklmnopqrstuvwxyz") = c3fcd3d76192e4007dfb496cca67e13b MD5 ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") = d174ab98d277d9f5a5611c2c9f419d9f MD5 ("12345678901234567890123456789012345678901234567890123456789012345678901234567890") = 57edf4a22be3c955ac49da2e2107b67a 鍙傝冪浉搴擱FC鏂囨。鍙互寰楀埌MD4銆丮D5綆楁硶鐨勮緇嗘弿榪板拰綆楁硶鐨凜婧愪唬鐮併?/p>
3) SHA1 鍙婂叾浠?nbsp; SHA1鏄敱NIST NSA璁捐涓哄悓DSA涓璧蜂嬌鐢ㄧ殑錛岃闂甴ttp://www.itl.nist.gov/fipspubs鍙互寰楀埌瀹冪殑璇︾粏瑙勮寖--[/url]"FIPS PUB 180-1 SECURE HASH STANDARD"銆傚畠瀵歸暱搴﹀皬浜?64鐨勮緭鍏ワ紝浜х敓闀垮害涓?60bit鐨勬暎鍒楀鹼紝鍥犳鎶楃┓涓?brute-force)鎬ф洿濂姐係HA-1 璁捐鏃跺熀浜庡拰MD4鐩稿悓鍘熺悊,騫朵笖妯′豢浜嗚綆楁硶銆傚洜涓哄畠灝嗕駭鐢?60bit鐨勬暎鍒楀鹼紝鍥犳瀹冩湁5涓弬涓庤繍綆楃殑32浣嶅瘎瀛樺櫒瀛楋紝娑堟伅鍒嗙粍鍜屽~鍏呮柟寮忎笌MD5鐩稿悓錛屼富寰幆涔熷悓鏍鋒槸4杞紝浣嗘瘡杞繘琛?0嬈℃搷浣滐紝闈炵嚎鎬ц繍綆椼佺Щ浣嶅拰鍔犳硶榪愮畻涔熶笌MD5綾諱技錛屼絾闈炵嚎鎬у嚱鏁般佸姞娉曞父鏁板拰寰幆宸︾Щ鎿嶄綔鐨勮璁℃湁涓浜涘尯鍒紝鍙互鍙傝冧笂闈㈡彁鍒扮殑瑙勮寖鏉ヤ簡瑙h繖浜涚粏鑺傘備笅闈㈡槸涓浜汼HA1鏁e垪緇撴灉鐨勪緥瀛愶細
SHA1 ("abc") = a9993e36 4706816a ba3e2571 7850c26c 9cd0d89d SHA1 ("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq") = 84983e44 1c3bd26e baae4aa1 f95129e5 e54670f1 鍏朵粬涓浜涚煡鍚嶇殑Hash綆楁硶榪樻湁MD2銆丯-Hash銆丷IPE-MD銆丠AVAL絳夌瓑銆備笂闈㈡彁鍒扮殑榪欎簺閮藉睘浜?綰?Hash綆楁硶銆傝繕鏈夊彟2綾籋ash綆楁硶錛屼竴綾誨氨鏄熀浜庡縐板垎緇勭畻娉曠殑鍗曞悜鏁e垪綆楁硶錛屽吀鍨嬬殑渚嬪瓙鏄熀浜嶥ES鐨勬墍璋揇avies-Meyer綆楁硶錛屽彟澶栬繕鏈夌粡IDEA鏀硅繘鐨凞avies-Meyer綆楁硶錛屽畠浠袱鑰呯洰鍓嶉兘琚涓烘槸瀹夊叏鐨勭畻娉曘傚彟涓綾繪槸鍩轟簬妯¤繍綆?紱繪暎瀵規暟鐨勶紝涔熷氨鏄熀浜庡叕寮瀵嗛挜綆楁硶鐨勶紝浣嗗洜涓哄叾榪愮畻寮閿澶ぇ錛岃岀己涔忓緢濂界殑搴旂敤鍓嶆櫙銆?/p>
娌℃湁閫氳繃鍒嗘瀽鍜屽樊鍒嗘敾鍑昏冮獙鐨勭畻娉曪紝澶у閮藉凡緇忓き鎶樺湪瀹為獙瀹ら噷浜嗭紝鍥犳錛屽鏋滅洰鍓嶆祦琛岀殑Hash綆楁硶鑳藉畬鍏ㄧ鍚堝瘑鐮佸鎰忎箟涓婄殑鍗曞悜鎬у拰鎶楀啿紿佹э紝灝變繚璇佷簡鍙湁絀蜂婦錛屾墠鏄牬鍧廐ash榪愮畻瀹夊叏鐗規х殑鍞竴鏂規硶銆備負浜嗗鎶楀急鎶楀啿紿佹э紝鎴戜滑鍙兘瑕佺┓涓句釜鏁板拰鏁e垪鍊肩┖闂撮暱搴︿竴鏍峰ぇ鐨勮緭鍏ワ紝鍗沖皾璇?^128鎴?^160涓笉鍚岀殑杈撳叆錛岀洰鍓嶄竴鍙伴珮妗d釜浜虹數鑴戝彲鑳介渶瑕?0^25騫存墠鑳藉畬鎴愯繖涓鑹板法鐨勫伐浣滐紝鍗充嬌鏄渶楂樼鐨勫茍琛岀郴緇燂紝榪欎篃涓嶆槸鍦ㄥ嚑鍗冨勾閲岀殑騫插緱瀹岀殑浜嬨傝屽洜涓?鐢熸棩鏀誨嚮"鏈夋晥鐨勯檷浣庝簡闇瑕佺┓涓劇殑絀洪棿錛屽皢鍏墮檷浣庝負澶х害1.2*2^64鎴?.2*2^80錛屾墍浠ワ紝寮烘姉鍐茬獊鎬ф槸鍐沖畾Hash綆楁硶瀹夊叏鎬х殑鍏抽敭銆?/p>
鍦∟IST鏂扮殑 Advanced Encryption Standard (AES)涓紝浣跨敤浜嗛暱搴︿負128銆?92銆?56bit 鐨勫瘑閽ワ紝鍥犳鐩稿簲鐨勮璁′簡 SHA256銆丼HA384銆丼HA512錛屽畠浠皢鎻愪緵鏇村ソ鐨勫畨鍏ㄦс?/p>
Hash綆楁硶鍦ㄤ俊鎭畨鍏ㄦ柟闈㈢殑搴旂敤涓昏浣撶幇鍦ㄤ互涓嬬殑3涓柟闈細
1) 鏂囦歡鏍¢獙 鎴戜滑姣旇緝鐔熸倝鐨勬牎楠岀畻娉曟湁濂囧伓鏍¢獙鍜孋RC鏍¢獙錛岃繖2縐嶆牎楠屽茍娌℃湁鎶楁暟鎹鏀圭殑鑳藉姏錛屽畠浠竴瀹氱▼搴︿笂鑳芥嫻嬪茍綰犳鏁版嵁浼犺緭涓殑淇¢亾璇爜錛屼絾鍗翠笉鑳介槻姝㈠鏁版嵁鐨勬伓鎰忕牬鍧忋?/p>
MD5 Hash綆楁硶鐨?鏁板瓧鎸囩汗"鐗規э紝浣垮畠鎴愪負鐩墠搴旂敤鏈騫挎硾鐨勪竴縐嶆枃浠跺畬鏁存ф牎楠屽拰(Checksum)綆楁硶錛屼笉灝慤nix緋葷粺鏈夋彁渚涜綆梞d5 checksum鐨勫懡浠ゃ傚畠甯歌鐢ㄥ湪涓嬮潰鐨?縐嶆儏鍐典笅錛?/p>
絎竴鏄枃浠朵紶閫佸悗鐨勬牎楠岋紝灝嗗緱鍒扮殑鐩爣鏂囦歡璁$畻 md5 checksum錛屼笌婧愭枃浠剁殑md5 checksum 姣斿錛岀敱涓よ?md5 checksum 鐨勪竴鑷存э紝鍙互浠庣粺璁′笂淇濊瘉2涓枃浠剁殑姣忎竴涓爜鍏冧篃鏄畬鍏ㄧ浉鍚岀殑銆傝繖鍙互媯楠屾枃浠朵紶杈撹繃紼嬩腑鏄惁鍑虹幇閿欒錛屾洿閲嶈鐨勬槸鍙互淇濊瘉鏂囦歡鍦ㄤ紶杈撹繃紼嬩腑鏈鎭舵剰綃℃敼銆備竴涓緢鍏稿瀷鐨勫簲鐢ㄦ槸ftp鏈嶅姟錛岀敤鎴峰彲浠ョ敤鏉ヤ繚璇佸嬈℃柇鐐圭畫浼狅紝鐗瑰埆鏄粠闀滃儚绔欑偣涓嬭澆鐨勬枃浠剁殑姝g‘鎬с?/p>
鏇村嚭鑹茬殑瑙e喅鏂規硶鏄墍璋撶殑浠g爜絳懼悕錛屾枃浠剁殑鎻愪緵鑰呭湪鎻愪緵鏂囦歡鐨勫悓鏃訛紝鎻愪緵瀵規枃浠禜ash鍊肩敤鑷繁鐨勪唬鐮佺鍚嶅瘑閽ヨ繘琛屾暟瀛楃鍚嶇殑鍊鹼紝鍙婅嚜宸辯殑浠g爜絳懼悕璇佷功銆傛枃浠剁殑鎺ュ彈鑰呬笉浠呰兘楠岃瘉鏂囦歡鐨勫畬鏁存э紝榪樺彲浠ヤ緷鎹嚜宸卞璇佷功絳懼彂鑰呭拰璇佷功鎷ユ湁鑰呯殑淇′換紼嬪害錛屽喅瀹氭槸鍚︽帴鍙楄鏂囦歡銆傛祻瑙堝櫒鍦ㄤ笅杞借繍琛屾彃浠跺拰java灝忕▼搴忔椂錛屼嬌鐢ㄧ殑灝辨槸榪欐牱鐨勬ā寮忋?/p>
絎簩鏄敤浣滀繚瀛樹簩榪涘埗鏂囦歡緋葷粺鐨勬暟瀛楁寚綰癸紝浠ヤ究媯嫻嬫枃浠剁郴緇熸槸鍚︽湭緇忓厑璁哥殑琚慨鏀廣備笉灝戠郴緇熺鐞?緋葷粺瀹夊叏杞歡閮芥彁渚涜繖涓鏂囦歡緋葷粺瀹屾暣鎬ц瘎浼扮殑鍔熻兘錛屽湪緋葷粺鍒濆瀹夎瀹屾瘯鍚庯紝寤虹珛瀵規枃浠剁郴緇熺殑鍩虹鏍¢獙鍜屾暟鎹簱錛屽洜涓烘暎鍒楁牎楠屽拰鐨勯暱搴﹀緢灝忥紝瀹冧滑鍙互鏂逛究鐨勮瀛樻斁鍦ㄥ閲忓緢灝忕殑瀛樺偍浠嬭川涓娿傛鍚庯紝鍙互瀹氭湡鎴栨牴鎹渶瑕侊紝鍐嶆璁$畻鏂囦歡緋葷粺鐨勬牎楠屽拰錛屼竴鏃﹀彂鐜頒笌鍘熸潵淇濆瓨鐨勫兼湁涓嶅尮閰嶏紝璇存槑璇ユ枃浠跺凡緇忚闈炴硶淇敼錛屾垨鑰呮槸琚梾姣掓劅鏌擄紝鎴栬呰鏈ㄩ┈紼嬪簭鏇夸唬銆俆ripWire灝辨彁渚涗簡涓涓綾誨簲鐢ㄧ殑鍏稿瀷渚嬪瓙銆?/p>
鏇村畬緹庣殑鏂規硶鏄嬌鐢?MAC"銆?MAC" 鏄竴涓笌Hash瀵嗗垏鐩稿叧鐨勫悕璇嶏紝鍗充俊鎭壌鏉冪爜(Message Authority Code)銆傚畠鏄笌瀵嗛挜鐩稿叧鐨凥ash鍊鹼紝蹇呴』鎷ユ湁璇ュ瘑閽ユ墠鑳芥楠岃Hash鍊箋傛枃浠剁郴緇熺殑鏁板瓧鎸囩汗涔熻浼氳淇濆瓨鍦ㄤ笉鍙俊浠葷殑浠嬭川涓婏紝鍙鎷ユ湁璇ュ瘑閽ヨ呮彁渚涘彲閴村埆鎬с傚茍涓斿湪鏂囦歡鐨勬暟瀛楁寚綰規湁鍙兘闇瑕佽淇敼鐨勬儏鍐典笅錛屽彧鏈夊瘑閽ョ殑鎷ユ湁鑰呭彲浠ヨ綆楀嚭鏂扮殑鏁e垪鍊鹼紝鑰屼紒鍥劇牬鍧忔枃浠跺畬鏁存ц呭嵈涓嶈兘寰楅炪?/p>
2) 鏁板瓧絳懼悕 Hash 綆楁硶涔熸槸鐜頒唬瀵嗙爜浣撶郴涓殑涓涓噸瑕佺粍鎴愰儴鍒嗐傜敱浜庨潪瀵圭О綆楁硶鐨勮繍綆楅熷害杈冩參錛屾墍浠ュ湪鏁板瓧絳懼悕鍗忚涓紝鍗曞悜鏁e垪鍑芥暟鎵紨浜嗕竴涓噸瑕佺殑瑙掕壊銆?/p>
鍦ㄨ繖縐嶇鍚嶅崗璁腑錛屽弻鏂瑰繀欏諱簨鍏堝崗鍟嗗ソ鍙屾柟閮芥敮鎸佺殑Hash鍑芥暟鍜岀鍚嶇畻娉曘?/p>
絳懼悕鏂瑰厛瀵硅鏁版嵁鏂囦歡榪涜璁$畻鍏舵暎鍒楀鹼紝鐒跺悗鍐嶅寰堢煭鐨勬暎鍒楀肩粨鏋?-濡侻d5鏄?6涓瓧鑺傦紝SHA1鏄?0瀛楄妭錛岀敤闈炲縐扮畻娉曡繘琛屾暟瀛楃鍚嶆搷浣溿傚鏂瑰湪楠岃瘉絳懼悕鏃訛紝涔熸槸鍏堝璇ユ暟鎹枃浠惰繘琛岃綆楀叾鏁e垪鍊鹼紝鐒跺悗鍐嶇敤闈炲縐扮畻娉曢獙璇佹暟瀛楃鍚嶃?/p>
瀵?Hash 鍊鹼紝鍙堢О"鏁板瓧鎽樿"榪涜鏁板瓧絳懼悕錛屽湪緇熻涓婂彲浠ヨ涓轟笌瀵規枃浠舵湰韜繘琛屾暟瀛楃鍚嶆槸絳夋晥鐨勩傝屼笖榪欐牱鐨勫崗璁繕鏈夊叾浠栫殑浼樼偣錛?/p>
棣栧厛錛屾暟鎹枃浠舵湰韜彲浠ュ悓瀹冪殑鏁e垪鍊煎垎寮淇濆瓨錛岀鍚嶉獙璇佷篃鍙互鑴辯鏁版嵁鏂囦歡鏈韓鐨勫瓨鍦ㄨ岃繘琛屻?/p>
鍐嶈咃紝鏈変簺鎯呭喌涓嬬鍚嶅瘑閽ュ彲鑳戒笌瑙e瘑瀵嗛挜鏄悓涓涓紝涔熷氨鏄錛屽鏋滃涓涓暟鎹枃浠剁鍚嶏紝涓庡鍏惰繘琛岄潪瀵圭О鐨勮В瀵嗘搷浣滄槸鐩稿悓鐨勬搷浣滐紝榪欐槸鐩稿綋鍗遍櫓鐨勶紝鎭舵剰鐨勭牬鍧忚呭彲鑳藉皢涓涓瘯鍥鵑獥浣犲皢鍏惰В瀵嗙殑鏂囦歡錛屽厖褰撲竴涓姹備綘絳懼悕鐨勬枃浠跺彂閫佺粰浣犮傚洜姝わ紝鍦ㄥ浠諱綍鏁版嵁鏂囦歡榪涜鏁板瓧絳懼悕鏃訛紝鍙湁瀵瑰叾Hash鍊艱繘琛岀鍚嶆墠鏄畨鍏ㄧ殑銆?/p>
3) 閴存潈鍗忚 濡備笅鐨勯壌鏉冨崗璁張琚О浣?鎸戞垬--璁よ瘉妯″紡錛氬湪浼犺緭淇¢亾鏄彲琚睛鍚紝浣嗕笉鍙綃℃敼鐨勬儏鍐典笅錛岃繖鏄竴縐嶇畝鍗曡屽畨鍏ㄧ殑鏂規硶銆?/p>
闇瑕侀壌鏉冪殑涓鏂癸紝鍚戝皢琚壌鏉冪殑涓鏂瑰彂閫侀殢鏈轟覆錛?#8220;鎸戞垬”錛夛紝琚壌鏉冩柟灝嗚闅忔満涓插拰鑷繁鐨勯壌鏉冨彛浠ゅ瓧涓璧瘋繘琛?Hash 榪愮畻鍚庯紝榪旇繕閴存潈鏂癸紝閴存潈鏂瑰皢鏀跺埌鐨凥ash鍊間笌鍦ㄥ繁绔敤璇ラ殢鏈轟覆鍜屽鏂圭殑閴存潈鍙d護瀛楄繘琛?Hash 榪愮畻鐨勭粨鏋滅浉姣旇緝錛?#8220;璁よ瘉”錛夛紝濡傜浉鍚岋紝鍒欏彲鍦ㄧ粺璁′笂璁や負瀵規柟鎷ユ湁璇ュ彛浠ゅ瓧錛屽嵆閫氳繃閴存潈銆?/p>
POP3鍗忚涓氨鏈夎繖涓搴旂敤鐨勫吀鍨嬩緥瀛愶細
S: +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us> C: APOP mrose c4c9334bac560ecc979e58001b3e22fb S: +OK maildrop has 1 message (369 octets) 鍦ㄤ笂闈㈢殑涓孌礟OP3鍗忚浼氳瘽涓紝鍙屾柟閮藉叡浜殑瀵圭О瀵嗛挜錛堥壌鏉冨彛浠ゅ瓧錛夋槸tanstaaf錛屾湇鍔″櫒鍙戝嚭鐨勬寫鎴樻槸<1896.697170952@dbc.mtview.ca.us>錛屽鎴風瀵規寫鎴樼殑搴旂瓟鏄疢D5("<1896.697170952@dbc.mtview.ca.us>tanstaaf") = c4c9334bac560ecc979e58001b3e22fb錛岃繖涓紜殑搴旂瓟浣垮叾閫氳繃浜嗚璇併?/p>
鏁e垪綆楁硶闀挎湡浠ユ潵涓鐩村湪璁$畻鏈虹瀛︿腑澶ч噺搴旂敤錛岄殢鐫鐜頒唬瀵嗙爜瀛︾殑鍙戝睍錛屽崟鍚戞暎鍒楀嚱鏁板凡緇忔垚涓轟俊鎭畨鍏ㄩ鍩熶腑涓涓噸瑕佺殑緇撴瀯妯″潡錛屾垜浠湁鐞嗙敱娣卞叆鐮旂┒鍏惰璁$悊璁哄拰搴旂敤鏂規硶銆?/p>
]]>C++闅忔満鏁扮敓鎴愭柟娉曪紙杞澆) http://m.shnenglu.com/softko/archive/2010/12/02/135228.htmleircQ eircQ Thu, 02 Dec 2010 00:42:00 GMT http://m.shnenglu.com/softko/archive/2010/12/02/135228.html http://m.shnenglu.com/softko/comments/135228.html http://m.shnenglu.com/softko/archive/2010/12/02/135228.html#Feedback 0 http://m.shnenglu.com/softko/comments/commentRss/135228.html http://m.shnenglu.com/softko/services/trackbacks/135228.html
鍘熸枃 http://www.cnblogs.com/finallyliuyu/archive/2010/10/11/1848130.html
涓銆丆++涓笉鑳戒嬌鐢╮andom()鍑芥暟
==================================================================================
鏈枃鐢遍潚鏉懼師鍒涘茍渚滸PL-V2鍙婂叾鍚庣畫鐗堟湰鍙戞斁錛岃漿杞借娉ㄦ槑鍑哄涓斿簲鍖呭惈鏈澹版槑銆?/p>
C++涓父鐢╮and()鍑芥暟鐢熸垚闅忔満鏁幫紝浣嗕弗鏍兼剰涔変笂鏉ヨ鐢熸垚鐨勫彧鏄吉闅忔満鏁幫紙pseudo-random integral
number錛夈傜敓鎴愰殢鏈烘暟鏃墮渶瑕佹垜浠寚瀹氫竴涓瀛愶紝濡傛灉鍦ㄧ▼搴忓唴寰幆錛岄偅涔堜笅涓嬈$敓鎴愰殢鏈烘暟鏃惰皟鐢ㄤ笂涓嬈$殑緇撴灉浣滀負縐嶅瓙銆備絾濡傛灉鍒嗕袱嬈℃墽琛岀▼搴忥紝閭d箞鐢?
浜庣瀛愮浉鍚岋紝鐢熸垚鐨?#8220;闅忔満鏁?#8221;涔熸槸鐩稿悓鐨勩?/p>
鍦ㄥ伐紼嬪簲鐢ㄦ椂錛屾垜浠竴鑸皢緋葷粺褰撳墠鏃墮棿(Unix鏃墮棿)浣滀負縐嶅瓙錛岃繖鏍風敓鎴愮殑闅忔満鏁版洿鎺ヨ繎浜庡疄闄呮剰涔変笂鐨勯殢鏈烘暟銆傜粰涓涓嬩緥紼嬪涓嬶細
#include <iostream> #include <ctime> #include <cstdlib> using namespace std;
int main() { double random(double,double); srand(unsigned(time(0))); for(int icnt = 0; icnt != 10; ++icnt) cout << "No." << icnt+1 << ": " << int(random(0,10))<< endl; return 0; }
double random(double start, double end) { return start+(end-start)*rand()/(RAND_MAX + 1.0); } /* 榪愯緇撴灉 * No.1: 3 * No.2: 9 * No.3: 0 * No.4: 9 * No.5: 5 * No.6: 6 * No.7: 9 * No.8: 2 * No.9: 9 * No.10: 6 */ 鍒╃敤榪欑鏂規硶鑳戒笉鑳藉緱鍒板畬鍏ㄦ剰涔変笂鐨勯殢鏈烘暟鍛紵浼間箮9鏈夌偣澶氬摝錛熷嵈娌℃湁1,4,7錛燂紒鎴戜滑鏉ュ仛涓涓鐜囧疄楠岋紝鐢熸垚1000涓囦釜闅忔満鏁幫紝鐪?-9榪?0涓暟鍑虹幇鐨勯鐜囨槸涓嶆槸澶ц嚧鐩稿悓鐨勩傜▼搴忓涓嬶細 #include <iostream> #include <ctime> #include <cstdlib> #include <iomanip> using namespace std;
int main() { double random(double,double); int a[10] = {0}; const int Gen_max = 10000000; srand(unsigned(time(0))); for(int icnt = 0; icnt != Gen_max; ++icnt) switch(int(random(0,10))) { case 0: a[0]++; break; case 1: a[1]++; break; case 2: a[2]++; break; case 3: a[3]++; break; case 4: a[4]++; break; case 5: a[5]++; break; case 6: a[6]++; break; case 7: a[7]++; break; case 8: a[8]++; break; case 9: a[9]++; break; default: cerr << "Error!" << endl; exit(-1); } for(int icnt = 0; icnt != 10; ++icnt)
cout << icnt << ": " << setw(6) <<
setiosflags(ios::fixed) << setprecision(2) <<
double(a[icnt])/Gen_max*100 << "%" << endl; return 0; }
double random(double start, double end) { return start+(end-start)*rand()/(RAND_MAX + 1.0); } /* 榪愯緇撴灉 * 0: 10.01% * 1: 9.99% * 2: 9.99% * 3: 9.99% * 4: 9.98% * 5: 10.01% * 6: 10.02% * 7: 10.01% * 8: 10.01% * 9: 9.99% */ 鍙煡鐢ㄨ繖縐嶆柟娉曞緱鍒扮殑闅忔満鏁版槸婊¤凍緇熻瑙勫緥鐨勩?/p>
鍙︼細鍦↙inux涓嬪埄鐢℅CC緙栬瘧紼嬪簭錛屽嵆浣挎垜鎵ц浜?000000嬈¤繍綆楋紝鏄惁灝唕andom鍑芥暟瀹氫箟浜唅nline鍑芥暟浼間箮瀵圭▼搴忔病鏈変換浣曞獎鍝嶏紝鏈夌悊鐢辯浉淇★紝GCC宸茬粡涓烘垜浠仛浜嗕紭鍖栥備絾鏄啣鍐ヤ箣涓垜鍙堣寰楄鍋歩nline浼樺寲寰楀姞O3鎵嶈...
涓嶈錛屼簬鏄垜浠妸寰幆嬈℃暟鏀逛負10浜挎錛岀敤time鍛戒護鏌ョ湅鎵ц鏃墮棿錛?br>chinsung@gentoo ~/workspace/test/Debug $ time ./test 0: 10.00% 1: 10.00% 2: 10.00% 3: 10.00% 4: 10.00% 5: 10.00% 6: 10.00% 7: 10.00% 8: 10.00% 9: 10.00%
real 2m7.768s user 2m4.405s sys 0m0.038schinsung@gentoo ~/workspace/test/Debug $ time ./test 0: 10.00% 1: 10.00% 2: 10.00% 3: 10.00% 4: 10.00% 5: 10.00% 6: 10.00% 7: 10.00% 8: 10.00% 9: 10.00%
real 2m7.269s user 2m4.077s sys 0m0.025s
鍓嶄竴嬈′負榪涜inline浼樺寲鐨勬儏褰紝鍚庝竴嬈′負娌℃湁浣渋nline浼樺寲鐨勬儏褰紝涓ゆ緇撴灉鐩稿樊涓嶅ぇ錛岀敋鑷沖悇欏規寚鏍囧悗鑰呰繕瑕佸ソ涓浜涳紝涓嶇煡鏄綍緙樼敱...
=================================================================================
random鍑芥暟涓嶆槸ANSI C鏍囧噯錛屼笉鑳藉湪gcc,vc絳夌紪璇戝櫒涓嬬紪璇戦氳繃銆?
鍙敼鐢–++涓嬬殑rand鍑芥暟鏉ュ疄鐜般?nbsp; 1銆丆++鏍囧噯鍑芥暟搴撴彁渚涗竴闅忔満鏁扮敓鎴愬櫒rand錛岃繑鍥?錛峈AND_MAX涔嬮棿鍧囧寑鍒嗗竷鐨勪吉闅忔満鏁存暟銆?
RAND_MAX蹇呴』鑷沖皯涓?2767銆俽and()鍑芥暟涓嶆帴鍙楀弬鏁幫紝榛樿浠?涓虹瀛愶紙鍗寵搗濮嬪鹼級銆?
闅忔満鏁扮敓鎴愬櫒鎬繪槸浠ョ浉鍚岀殑縐嶅瓙寮濮嬶紝鎵浠ュ艦鎴愮殑浼殢鏈烘暟鍒椾篃鐩稿悓錛屽け鍘諱簡闅忔満鎰忎箟銆傦紙浣嗚繖鏍蜂究浜庣▼搴忚皟璇曪級 2銆丆++涓彟涓鍑芥暟srand錛堬級錛屽彲浠ユ寚瀹氫笉鍚岀殑鏁幫紙鏃犵鍙鋒暣鏁板彉鍏冿級涓虹瀛愩備絾鏄鏋滅瀛愮浉鍚岋紝浼殢鏈烘暟鍒椾篃鐩稿悓銆備竴涓姙娉曟槸璁╃敤鎴瘋緭鍏ョ瀛愶紝浣嗘槸浠嶇劧涓嶇悊鎯熾? 3銆?姣旇緝鐞嗘兂鐨勬槸鐢ㄥ彉鍖栫殑鏁幫紝姣斿鏃墮棿鏉ヤ綔涓洪殢鏈烘暟鐢熸垚鍣ㄧ殑縐嶅瓙銆?time鐨勫兼瘡鏃舵瘡鍒婚兘涓嶅悓銆傛墍浠ョ瀛愪笉鍚岋紝鎵浠ワ紝浜х敓鐨勯殢鏈烘暟涔熶笉鍚屻? // C++闅忔満鍑芥暟錛圴C program錛? #include <stdio.h> #include <iostream> #include <time.h> using namespace std; #define MAX 100 int main(int argc, char* argv[]) { srand( (unsigned)time( NULL ) );//srand()鍑芥暟浜х敓涓涓互褰撳墠鏃墮棿寮濮嬬殑闅忔満縐嶅瓙.搴旇鏀懼湪for絳夊驚鐜鍙ュ墠闈?涓嶇劧瑕佸緢闀挎椂闂寸瓑寰? 銆銆 for (int i=0;i<10;i++) 銆銆 cout<<rand()%MAX<<endl;//MAX涓烘渶澶у鹼紝鍏墮殢鏈哄煙涓?~MAX-1 銆銆 return 0; } 浜屻乺and()鐨勭敤娉? rand()涓嶉渶瑕佸弬鏁幫紝瀹冧細榪斿洖涓涓粠0鍒版渶澶ч殢鏈烘暟鐨勪換鎰忔暣鏁幫紝鏈澶ч殢鏈烘暟鐨勫ぇ灝忛氬父鏄浐瀹氱殑涓涓ぇ鏁存暟銆?榪欐牱錛屽鏋滀綘瑕佷駭鐢?~10鐨?0涓暣鏁幫紝鍙互琛ㄨ揪涓猴細 銆銆int N = rand() % 11; 榪欐牱錛孨鐨勫煎氨鏄竴涓?~10鐨勯殢鏈烘暟錛屽鏋滆浜х敓1~10錛屽垯鏄繖鏍鳳細 銆銆int N = 1 + rand() % 10; 銆銆鎬葷粨鏉ヨ錛屽彲浠ヨ〃紺轟負錛? 銆銆a + rand() % n
鍏朵腑鐨刟鏄搗濮嬪鹼紝n鏄暣鏁扮殑鑼冨洿銆?銆銆a + rand() % (b-a+1)
灝辮〃紺恒锝侊綖锝備箣闂寸殑涓涓殢鏈烘暟鑻ヨ0~1鐨勫皬鏁幫紝鍒欏彲浠ュ厛鍙栧緱0~10鐨勬暣鏁幫紝鐒跺悗鍧囬櫎浠?0鍗沖彲寰楀埌闅忔満鍒板崄鍒嗕綅鐨?0涓殢鏈哄皬鏁幫紝鑻ヨ寰楀埌闅忔満鍒扮櫨
鍒嗕綅鐨勯殢鏈哄皬鏁幫紝鍒欓渶瑕佸厛寰楀埌0~100鐨?0涓暣鏁幫紝鐒跺悗鍧囬櫎浠?00錛屽叾瀹冩儏鍐典緷姝ょ被鎺ㄣ? 閫氬父rand()浜х敓鐨勯殢鏈烘暟鍦ㄦ瘡嬈¤繍琛岀殑鏃跺欓兘鏄笌涓婁竴嬈$浉鍚岀殑錛岃繖鏄湁鎰忚繖鏍瘋璁$殑錛屾槸涓轟簡渚夸簬紼嬪簭鐨勮皟璇曘傝嫢瑕佷駭鐢熸瘡嬈′笉鍚岀殑闅忔満鏁幫紝鍙互浣跨敤srand( seed )鍑芥暟榪涜闅忔満鍖栵紝闅忕潃seed鐨勪笉鍚岋紝灝辮兘澶熶駭鐢熶笉鍚岀殑闅忔満鏁般? 濡傚ぇ瀹舵墍璇達紝榪樺彲浠ュ寘鍚玹ime.h澶存枃浠訛紝鐒跺悗浣跨敤srand(time(0))鏉ヤ嬌鐢ㄥ綋鍓嶆椂闂翠嬌闅忔満鏁板彂鐢熷櫒闅忔満鍖栵紝榪欐牱灝卞彲浠ヤ繚璇佹瘡涓ゆ榪愯鏃跺彲浠ュ緱鍒頒笉鍚岀殑闅忔満鏁板簭鍒?鍙涓ゆ榪愯鐨勯棿闅旇秴榪?縐?銆?/p>
]]> trie鏍?-璇﹁В http://m.shnenglu.com/softko/archive/2010/11/26/134701.htmleircQ eircQ Fri, 26 Nov 2010 01:48:00 GMT http://m.shnenglu.com/softko/archive/2010/11/26/134701.html http://m.shnenglu.com/softko/comments/134701.html http://m.shnenglu.com/softko/archive/2010/11/26/134701.html#Feedback 0 http://m.shnenglu.com/softko/comments/commentRss/134701.html http://m.shnenglu.com/softko/services/trackbacks/134701.html 鏂囩珷浣滆咃細 yx_th000 鏂囩珷鏉ユ簮錛?/span>C herish_yimi ( http://www.cnblogs.com/cherish_yimi/ ) 杞澆璇鋒敞鏄庯紝璋㈣阿鍚堜綔銆?br> 鍏抽敭璇嶏細trie trie鏍?鏁版嵁緇撴瀯
鍓嶅嚑澶╁涔犱簡騫舵煡闆嗗拰trie鏍戯紝榪欓噷鎬葷粨涓涓媡rie銆?br> 鏈枃璁ㄨ涓媯墊渶綆鍗曠殑trie鏍戯紝鍩轟簬鑻辨枃26涓瓧姣嶇粍鎴愮殑瀛楃涓詫紝璁ㄨ鎻掑叆瀛楃涓層佸垽鏂墠緙鏄惁瀛樺湪銆佹煡鎵懼瓧絎︿覆絳夊熀鏈搷浣滐紱鑷充簬trie鏍戠殑鍒犻櫎鍗曚釜鑺傜偣瀹炲湪鏄皯瑙侊紝鏁呭湪姝や笉鍋氳瑙c?/span>
l Trie 鍘熺悊
Trie 鐨勬牳蹇冩濇兂鏄┖闂存崲鏃墮棿銆傚埄鐢ㄥ瓧絎︿覆鐨勫叕鍏卞墠緙鏉ラ檷浣庢煡璇㈡椂闂寸殑寮閿浠ヨ揪鍒版彁楂樻晥鐜囩殑鐩殑銆?/span>
l Trie 鎬ц川
濂藉浜鴻trie鐨勬牴鑺傜偣涓嶅寘鍚換浣曞瓧絎︿俊鎭紝鎴戞墍涔犳儻鐨則rie鏍硅妭鐐瑰嵈鏄寘鍚俊鎭殑錛岃屼笖璁や負榪欐牱涔熸柟渚匡紝涓嬮潰璇翠竴涓嬪畠鐨勬ц川 (鍩轟簬鏈枃鎵璁ㄨ鐨勭畝鍗晅rie鏍?
1. 瀛楃鐨勭鏁板喅瀹氭瘡涓妭鐐圭殑鍑哄害錛屽嵆branch鏁扮粍(絀洪棿鎹㈡椂闂存濇兂)
2. branch 鏁扮粍鐨勪笅鏍囦唬琛ㄥ瓧絎︾浉瀵逛簬a鐨勭浉瀵逛綅緗?/span>
3. 閲囩敤鏍囪鐨勬柟娉曠‘瀹氭槸鍚︿負瀛楃涓層?/span>
4. 鎻掑叆銆佹煡鎵劇殑澶嶆潅搴﹀潎涓篛(len),len涓哄瓧絎︿覆闀垮害
l Trie 鐨勭ず鎰忓浘
濡傚浘鎵紺猴紝璇rie鏍戝瓨鏈塧bc銆乨銆乨a銆乨da鍥涗釜瀛楃涓詫紝濡傛灉鏄瓧絎︿覆浼氬湪鑺傜偣鐨勫熬閮ㄨ繘琛屾爣璁般傛病鏈夊悗緇瓧絎︾殑branch鍒嗘敮鎸囧悜NULL l Trie Trie 鐨勪紭鐐逛婦渚?/span>
宸茬煡n涓敱灝忓啓瀛楁瘝鏋勬垚鐨勫鉤鍧囬暱搴︿負10鐨勫崟璇?鍒ゆ柇鍏朵腑鏄惁瀛樺湪鏌愪釜涓蹭負鍙︿竴涓覆鐨勫墠緙瀛愪覆銆備笅闈㈠姣?縐嶆柟娉曪細
1. 鏈瀹規槗鎯沖埌鐨勶細鍗充粠瀛楃涓查泦涓粠澶村線鍚庢悳錛岀湅姣忎釜瀛楃涓叉槸鍚︿負瀛楃涓查泦涓煇涓瓧絎︿覆鐨勫墠緙錛屽鏉傚害涓篛(n^2)銆?/span>
2. 浣跨敤hash錛氭垜浠敤hash瀛樹笅鎵鏈夊瓧絎︿覆鐨勬墍鏈夌殑鍓嶇紑瀛愪覆銆傚緩绔嬪瓨鏈夊瓙涓瞙ash鐨勫鏉傚害涓篛(n*len)銆傛煡璇㈢殑澶嶆潅搴︿負O(n)* O(1)= O(n)銆?/span>
3. 浣?
鐢╰rie錛氬洜涓哄綋鏌ヨ濡傚瓧絎︿覆abc鏄惁涓烘煇涓瓧絎︿覆鐨勫墠緙鏃訛紝鏄劇劧浠,c,d....絳変笉鏄互a寮澶寸殑瀛楃涓插氨涓嶇敤鏌ユ壘浜嗐傛墍浠ュ緩绔媡rie鐨勫鏉?
搴︿負O(n*len)錛岃屽緩绔?鏌ヨ鍦╰rie涓槸鍙互鍚屾椂鎵ц鐨勶紝寤虹珛鐨勮繃紼嬩篃灝卞彲浠ユ垚涓烘煡璇㈢殑榪囩▼錛宧ash灝變笉鑳藉疄鐜拌繖涓姛鑳姐傛墍浠ユ葷殑澶嶆潅搴︿負
O(n*len)錛屽疄闄呮煡璇㈢殑澶嶆潅搴﹀彧鏄疧(len)銆?br>
瑙i噴涓涓?
hash涓轟粈涔堜笉鑳藉皢寤虹珛涓庢煡璇㈠悓鏃舵墽琛岋紝渚嬪鏈変覆錛?11錛?11456杈撳叆錛屽鏋滆鍚屾椂鎵ц寤虹珛涓庢煡璇紝榪囩▼灝辨槸鏌ヨ911錛屾病鏈夛紝鐒跺悗瀛樺叆9銆?
91銆?11錛屾煡璇?11456錛屾病鏈夌劧鍚庡瓨鍏?114銆?1145銆?11456錛岃岀▼搴忔病鏈夎蹇嗗姛鑳斤紝騫朵笉鐭ラ亾911鍦ㄨ緭鍏ユ暟鎹腑鍑虹幇榪囥傛墍浠ョ敤
hash蹇呴』鍏堝瓨鍏ユ墍鏈夊瓙涓詫紝鐒跺悗for寰幆鏌ヨ銆?/span>
鑰宼rie鏍戜究鍙?
浠ワ紝瀛樺叆911鍚庯紝宸茬粡璁板綍911涓哄嚭鐜扮殑瀛楃涓詫紝鍦ㄥ瓨鍏?11456鐨勮繃紼嬩腑灝辮兘鍙戠幇鑰岃緭鍑虹瓟妗堬紱鍊掕繃鏉ヤ害鍙互錛屽厛瀛樺叆911456錛屽湪瀛樺叆911鏃訛紝
褰撴寚閽堟寚鍚戞渶鍚庝竴涓?鏃訛紝紼嬪簭浼氬彂鐜拌繖涓?宸茬粡瀛樺湪錛岃鏄?11蹇呭畾鏄煇涓瓧絎︿覆鐨勫墠緙錛岃鎬濇兂鏄垜鍦ㄥ仛pku涓婄殑3630涓彂鐜扮殑錛岃瑙佹湰鏂囬厤濂楃殑“鍏?
闂ㄧ粌涔?#8221;銆?/span>
l Trie 鐨勭畝鍗曞疄 鐜?鎻掑叆銆佹煡 璇?
Code 1 2 #include < iostream > 3 using namespace std; 4 5 const int branchNum = 26 ; // 澹版槑甯擱噺 6 int i; 7 8 struct Trie_node 9 { 10 bool isStr; // 璁板綍姝ゅ鏄惁鏋勬垚涓涓覆銆?/span>11 Trie_node * next[branchNum]; // 鎸囧悜鍚勪釜瀛愭爲鐨勬寚閽?涓嬫爣0-25浠h〃26瀛楃 12 Trie_node():isStr( false ) 13 { 14 memset(next,NULL,sizeof (next)); 15 }16 } ; 17 18 class Trie 19 { 20 public : 21 Trie();22 void insert( const char * word); 23 bool search( char * word); 24 void deleteTrie(Trie_node * root); 25 private : 26 Trie_node* root; 27 }; 28 29 Trie::Trie()30 { 31 root = new Trie_node(); 32 }33 34 void Trie::insert( const char * word) 35 { 36 Trie_node * location = root; 37 while ( * word) 38 { 39 if (location -> next[ * word - ' a ' ] == NULL) // 涓嶅瓨鍦ㄥ垯寤虹珛 40 { 41 Trie_node * tmp = new Trie_node(); 42 location-> next[ * word - ' a ' ] = tmp; 43 } 44 location = location -> next[ * word - ' a ' ]; // 姣忔彃鍏ヤ竴姝ワ紝鐩稿綋浜庢湁涓涓柊涓茬粡榪囷紝鎸囬拡瑕佸悜涓嬬Щ鍔?/span>45 word ++ ; 46 } 47 location-> isStr = true ; // 鍒拌揪灝鵑儴,鏍囪涓涓覆 48 } 49 50 bool Trie::search( char * word) 51 { 52 Trie_node * location = root; 53 while ( * word && location) 54 { 55 location = location -> next[ * word - ' a ' ]; 56 word++ ; 57 }58 return (location != NULL && location -> isStr); 59 }60 61 void Trie::deleteTrie(Trie_node * root) 62 { 63 for (i = 0 ; i < branchNum; i ++ ) 64 { 65 if (root -> next[i] != NULL) 66 { 67 deleteTrie(root-> next[i]); 68 }69 }70 delete root;71 }72 73 void main() // 綆鍗曟祴璇?/span>74 { 75 Trie t;76 t.insert(" a " ); 77 t.insert(" abandon " ); 78 char * c = " abandoned " ; 79 t.insert(c);80 t.insert(" abashed " ); 81 if (t.search( " abashed " )) 82 printf(" true\n " ); 83 }
]]>浣跨敤ADO鐨勫叿浣撴柟娉?杞? http://m.shnenglu.com/softko/archive/2010/11/08/132988.htmleircQ eircQ Mon, 08 Nov 2010 05:49:00 GMT http://m.shnenglu.com/softko/archive/2010/11/08/132988.html http://m.shnenglu.com/softko/comments/132988.html http://m.shnenglu.com/softko/archive/2010/11/08/132988.html#Feedback 0 http://m.shnenglu.com/softko/comments/commentRss/132988.html http://m.shnenglu.com/softko/services/trackbacks/132988.html 闃呰鍏ㄦ枃 ]]> DataGrid錛氭彁紺?can not initialize data binding"(杞? http://m.shnenglu.com/softko/archive/2010/10/11/129441.htmleircQ eircQ Mon, 11 Oct 2010 07:55:00 GMT http://m.shnenglu.com/softko/archive/2010/10/11/129441.html http://m.shnenglu.com/softko/comments/129441.html http://m.shnenglu.com/softko/archive/2010/10/11/129441.html#Feedback 0 http://m.shnenglu.com/softko/comments/commentRss/129441.html http://m.shnenglu.com/softko/services/trackbacks/129441.html
榪欎袱澶╅亣鍒頒竴涓棶棰橈紝灝辨槸榪愯鍙墽琛屾枃浠舵椂錛屽嚭鐜?can not initialize data binding"閿欒錛屽師鍥狅細
浣跨敤DATAGRID鎺т歡錛岄櫎浜嗘敞鍐孧SDATGRD.OCX澶?榪橀渶瑕佹敞鍐屼竴涓婱SSTDFMT.DLL鎵嶅彲浠ャ侻SSTDFMT.DLL鏄井杞?
鏍囧噯鏁版嵁鏍煎紡瀵硅薄鐩稿叧鍔ㄦ侀摼鎺ュ簱鏂囦歡錛屽紩鐢ㄥ悕縐頒負“Microsoft Data Formatting Object
Library”錛屽鏋滃湪寮鍙戠▼搴忎腑鏈夋暟鎹粦瀹氾紝灝辨槸閫氳繃瀹冨鏁版嵁鏍煎紡鍖栧悗鍐嶇粦瀹氬埌鎺т歡鐨勩傚鏋滅敤鍒版暟鎹粦瀹氭帶浠訛紝閭d箞灝辮璁板緱鎶?
MSSTDFMT.DLL鍔犲埌瀹夎紼嬪簭閲岄潰銆?/p>
娉細鏈夌殑鐢佃剳娉ㄥ唽MSDATGRD.OCX銆丮SSTDFMT.DLL錛屾墍浠ユ湭鍑虹幇姝ょ被鎯呭喌銆?/p>
瑙e喅鏂規硶錛?/p>
鏂規硶涓錛?/p>
紼嬪簭鎵撳寘鏃訛紝灝哅SDATGRD.OCX銆丮SSTDFMT.DLL閮藉姞杞戒笂鍘匯?/p>
鏂規硶浜岋細
寮濮?銆夎繍琛岋細
regsvr32 MSDATGRD.OCX
regsvr32 MSSTDFMT.DLL
]]> C璇█瀛楄妭瀵歸綈璇﹁В(杞? http://m.shnenglu.com/softko/archive/2010/09/17/126825.htmleircQ eircQ Fri, 17 Sep 2010 01:49:00 GMT http://m.shnenglu.com/softko/archive/2010/09/17/126825.html http://m.shnenglu.com/softko/comments/126825.html http://m.shnenglu.com/softko/archive/2010/09/17/126825.html#Feedback 0 http://m.shnenglu.com/softko/comments/commentRss/126825.html http://m.shnenglu.com/softko/services/trackbacks/126825.html 涓銆?
浠涔堟槸瀵歸綈錛屼互鍙婁負浠涔堣瀵歸綈錛?/font> 1.
鐜頒唬璁$畻鏈轟腑鍐呭瓨絀洪棿閮芥槸鎸夌収byte鍒掑垎鐨勶紝浠庣悊璁轟笂璁蹭技涔庡浠諱綍綾誨瀷鐨勫彉閲忕殑璁塊棶鍙互浠庝換浣曞湴鍧寮濮嬶紝浣嗗疄闄呮儏鍐墊槸鍦ㄨ闂壒瀹氬彉閲忕殑鏃跺欑粡甯稿湪鐗瑰畾鐨?
鍐呭瓨鍦板潃璁塊棶錛岃繖灝遍渶瑕佸悇綾誨瀷鏁版嵁鎸夌収涓瀹氱殑瑙勫垯鍦ㄧ┖闂翠笂鎺掑垪錛岃屼笉鏄『搴忕殑涓涓帴涓涓殑鎺掓斁錛岃繖灝辨槸瀵歸綈銆?br> 2.
瀵歸綈鐨勪綔鐢ㄥ拰鍘熷洜錛氬悇涓‖浠跺鉤鍙板瀛樺偍絀洪棿鐨勫鐞嗕笂鏈夊緢澶х殑涓嶅悓銆備竴浜涘鉤鍙板鏌愪簺鐗瑰畾綾誨瀷鐨勬暟鎹彧鑳戒粠鏌愪簺鐗瑰畾鍦板潃寮濮嬪瓨鍙栥傚叾浠栧鉤鍙板彲鑳芥病鏈夎繖縐嶆儏鍐碉紝
浣嗘槸鏈甯歌鐨勬槸濡傛灉涓嶆寜鐓ч傚悎鍏跺鉤鍙扮殑瑕佹眰瀵規暟鎹瓨鏀捐繘琛屽榻愶紝浼氬湪瀛樺彇鏁堢巼涓婂甫鏉ユ崯澶便傛瘮濡傛湁浜涘鉤鍙版瘡嬈¤閮芥槸浠庡伓鍦板潃寮濮嬶紝濡傛灉涓涓猧nt鍨嬶紙鍋囪涓?
32浣嶏級濡傛灉瀛樻斁鍦ㄥ伓鍦板潃寮濮嬬殑鍦版柟錛岄偅涔堜竴涓鍛ㄦ湡灝卞彲浠ヨ鍑猴紝鑰屽鏋滃瓨鏀懼湪濂囧湴鍧寮濮嬬殑鍦版柟錛屽氨鍙兘浼氶渶瑕?涓鍛ㄦ湡錛屽茍瀵逛袱嬈¤鍑虹殑緇撴灉鐨勯珮浣?
瀛楄妭榪涜鎷煎噾鎵嶈兘寰楀埌璇nt鏁版嵁銆傛樉鐒跺湪璇誨彇鏁堢巼涓婁笅闄嶅緢澶氥傝繖涔熸槸絀洪棿鍜屾椂闂寸殑鍗氬紙銆?font size="3"> 浜屻佸榻愮殑瀹炵幇
閫氬父錛屾垜浠啓紼嬪簭鐨勬椂鍊欙紝涓嶉渶瑕佽冭檻瀵歸綈闂銆傜紪璇戝櫒浼氭浛鎴戜滑閫夋嫨閫傚悎鐩爣騫沖彴鐨勫榻愮瓥鐣ャ傚綋鐒訛紝鎴戜滑涔熷彲浠ラ氱煡緇欑紪璇戝櫒浼犻掗緙栬瘧鎸囦護鑰屾敼鍙樺鎸囧畾鏁版嵁
鐨勫榻愭柟娉曘?br>
浣嗘槸錛屾鍥犱負鎴戜滑涓鑸笉闇瑕佸叧蹇冭繖涓棶棰橈紝鎵浠ュ洜涓虹紪杈戝櫒瀵規暟鎹瓨鏀懼仛浜嗗榻愶紝鑰屾垜浠笉浜嗚В鐨勮瘽錛屽父甯鎬細瀵逛竴浜涢棶棰樻劅鍒拌糠鎯戙傛渶甯歌鐨勫氨鏄痵truct鏁?
鎹粨鏋勭殑sizeof緇撴灉錛屽嚭涔庢剰鏂欍備負姝わ紝鎴戜滑闇瑕佸瀵歸綈綆楁硶鎵浜嗚В銆?br> 瀵歸綈鐨勭畻娉曪細
鐢變簬鍚勪釜騫沖彴鍜岀紪璇戝櫒鐨勪笉鍚岋紝鐜頒互鏈漢浣跨敤鐨刧cc version
3.2.2緙栬瘧鍣紙32浣峹86騫沖彴錛変負渚嬪瓙錛屾潵璁ㄨ緙栬瘧鍣ㄥstruct鏁版嵁緇撴瀯涓殑鍚勬垚鍛樺浣曡繘琛屽榻愮殑銆?br> 璁劇粨鏋勪綋濡備笅瀹氫箟錛?br>
struct A { int a; char b; short c; };
緇撴瀯浣揂涓寘鍚簡4瀛楄妭闀垮害鐨刬nt涓涓紝1瀛楄妭闀垮害鐨刢har涓涓拰2瀛楄妭闀垮害鐨剆hort鍨嬫暟鎹竴涓傛墍浠鐢ㄥ埌鐨勭┖闂村簲璇ユ槸7瀛楄妭銆備絾鏄洜涓虹紪璇戝櫒
瑕佸鏁版嵁鎴愬憳鍦ㄧ┖闂翠笂榪涜瀵歸綈銆?br> 鎵浠ヤ嬌鐢╯izeof(strcut A)鍊間負8銆?br> 鐜板湪鎶婅緇撴瀯浣撹皟鏁存垚鍛樺彉閲忕殑欏哄簭銆?br>
struct B { char b; int a; short c; };
榪欐椂鍊欏悓鏍鋒槸鎬誨叡7涓瓧鑺傜殑鍙橀噺錛屼絾鏄痵izeof(struct B)鐨勫煎嵈鏄?2銆?br> 涓嬮潰鎴戜滑浣跨敤棰勭紪璇戞寚浠?pragma pack
(value)鏉ュ憡璇夌紪璇戝櫒錛屼嬌鐢ㄦ垜浠寚瀹氱殑瀵歸綈鍊兼潵鍙栦唬緙虹渷鐨勩?br> #pragma pack (2) /*鎸囧畾鎸?瀛楄妭瀵歸綈*/
struct C { char b; int a; short c; };
#pragma pack () /*鍙栨秷鎸囧畾瀵歸綈錛屾仮澶嶇己鐪佸榻?/ sizeof(struct C)鍊兼槸8銆?br>
淇敼瀵歸綈鍊間負1錛?br> #pragma pack (1) /*鎸囧畾鎸?瀛楄妭瀵歸綈*/ struct D { char
b; int a; short c; }; #pragma pack ()
/*鍙栨秷鎸囧畾瀵歸綈錛屾仮澶嶇己鐪佸榻?/ sizeof(struct D)鍊間負7銆?br>
瀵逛簬char鍨嬫暟鎹紝鍏惰嚜韜榻愬間負1錛屽浜巗hort鍨嬩負2錛屽浜巌nt,float,double綾誨瀷錛屽叾鑷韓瀵歸綈鍊間負4錛屽崟浣嶅瓧鑺傘?br>
榪欓噷闈㈡湁鍥涗釜姒傚康鍊鹼細 1)鏁版嵁綾誨瀷鑷韓鐨勫榻愬鹼細灝辨槸涓婇潰浜や唬鐨勫熀鏈暟鎹被鍨嬬殑鑷韓瀵歸綈鍊箋?br> 2)鎸囧畾瀵歸綈鍊鹼細#pragma
pack (value)鏃剁殑鎸囧畾瀵歸綈鍊紇alue銆?br> 3)緇撴瀯浣撴垨鑰呯被鐨勮嚜韜榻愬鹼細鍏舵垚鍛樹腑鑷韓瀵歸綈鍊兼渶澶х殑閭d釜鍊箋?br>
4)鏁版嵁鎴愬憳銆佺粨鏋勪綋鍜岀被鐨勬湁鏁堝榻愬鹼細鑷韓瀵歸綈鍊煎拰鎸囧畾瀵歸綈鍊間腑杈冨皬鐨勯偅涓箋?br>
鏈変簡榪欎簺鍊鹼紝鎴戜滑灝卞彲浠ュ緢鏂逛究鐨勬潵璁ㄨ鍏蜂綋鏁版嵁緇撴瀯鐨勬垚鍛樺拰鍏惰嚜韜殑瀵歸綈鏂瑰紡銆傛湁鏁堝榻愬糔鏄渶緇堢敤鏉ュ喅瀹氭暟鎹瓨鏀懼湴鍧鏂瑰紡鐨勫鹼紝鏈閲嶈銆傛湁鏁堝榻怤錛屽氨
鏄〃紺?#8220;瀵歸綈鍦∟涓?#8221;錛屼篃灝辨槸璇磋鏁版嵁鐨?瀛樻斁璧峰鍦板潃%N=0".鑰屾暟鎹粨鏋勪腑鐨勬暟鎹彉閲忛兘鏄寜瀹氫箟鐨勫厛鍚庨『搴忔潵鎺掓斁鐨勩傜涓涓暟鎹彉閲忕殑璧峰鍦板潃灝辨槸
鏁版嵁緇撴瀯鐨勮搗濮嬪湴鍧銆傜粨鏋勪綋鐨勬垚鍛樺彉閲忚瀵歸綈鎺掓斁錛岀粨鏋勪綋鏈韓涔熻鏍規嵁鑷韓鐨勬湁鏁堝榻愬煎渾鏁?灝辨槸緇撴瀯浣撴垚鍛樺彉閲忓崰鐢ㄦ婚暱搴﹂渶瑕佹槸瀵圭粨鏋勪綋鏈夋晥瀵歸綈鍊肩殑鏁?
鏁板嶏紝緇撳悎涓嬮潰渚嬪瓙鐞嗚В)銆傝繖鏍峰氨涓嶉毦鐞嗚В涓婇潰鐨勫嚑涓緥瀛愮殑鍊間簡銆?br> 渚嬪瓙鍒嗘瀽錛?br> 鍒嗘瀽渚嬪瓙B錛?br> struct B {
char b; int a; short c; };
鍋囪B浠庡湴鍧絀洪棿0x0000寮濮嬫帓鏀俱傝渚嬪瓙涓病鏈夊畾涔夋寚瀹氬榻愬鹼紝鍦ㄧ瑪鑰呯幆澧冧笅錛岃鍊奸粯璁や負4銆傜涓涓垚鍛樺彉閲廱鐨勮嚜韜榻愬兼槸1錛屾瘮鎸囧畾鎴栬呴粯璁ゆ寚
瀹氬榻愬?灝忥紝鎵浠ュ叾鏈夋晥瀵歸綈鍊間負1錛屾墍浠ュ叾瀛樻斁鍦板潃0x0000絎﹀悎0x0000%1=0.絎簩涓垚鍛樺彉閲廰錛屽叾鑷韓瀵歸綈鍊間負4錛屾墍浠ユ湁鏁堝榻愬間篃涓?
4錛屾墍浠ュ彧鑳藉瓨鏀懼湪璧峰鍦板潃涓?x0004鍒?x0007榪欏洓涓繛緇殑瀛楄妭絀洪棿涓紝澶嶆牳0x0004%4=0,涓旂揣闈犵涓涓彉閲忋傜涓変釜鍙橀噺c,鑷韓瀵歸綈
鍊間負2錛屾墍浠ユ湁鏁堝榻愬間篃鏄?錛屽彲浠ュ瓨鏀懼湪0x0008鍒?x0009榪欎袱涓瓧鑺傜┖闂翠腑錛岀鍚?x0008%2=0銆傛墍浠ヤ粠0x0000鍒?x0009瀛?
鏀劇殑閮芥槸B鍐呭銆傚啀鐪嬫暟鎹粨鏋凚鐨勮嚜韜榻愬間負鍏跺彉閲忎腑鏈澶у榻愬?榪欓噷鏄痓錛夋墍浠ュ氨鏄?錛屾墍浠ョ粨鏋勪綋鐨勬湁鏁堝榻愬間篃鏄?銆傛牴鎹粨鏋勪綋鍦嗘暣鐨勮姹傦紝
0x0009鍒?x0000=10瀛楄妭錛岋紙10錛?錛夛紖4錛?銆傛墍浠?x0000A鍒?x000B涔熶負緇撴瀯浣揃鎵鍗犵敤銆傛晠B浠?x0000鍒?x000B
鍏辨湁12涓瓧鑺?sizeof(struct B)=12; 鍚岀悊,鍒嗘瀽涓婇潰渚嬪瓙C錛?br> #pragma pack (2)
/*鎸囧畾鎸?瀛楄妭瀵歸綈*/ struct C { char b; int a; short
c; }; #pragma pack () /*鍙栨秷鎸囧畾瀵歸綈錛屾仮澶嶇己鐪佸榻?/
絎竴涓彉閲廱鐨勮嚜韜榻愬間負1錛屾寚瀹氬榻愬間負2錛屾墍浠ワ紝鍏舵湁鏁堝榻愬間負1錛屽亣璁綜浠?x0000寮濮嬶紝閭d箞b瀛樻斁鍦?x0000錛岀鍚?x0000%1=
0;絎簩涓彉閲忥紝鑷韓瀵歸綈鍊間負4錛屾寚瀹氬榻愬間負2錛屾墍浠ユ湁鏁堝榻愬間負2錛屾墍浠ラ『搴忓瓨鏀懼湪0x0002銆?x0003銆?x0004銆?x0005鍥涗釜榪炵畫
瀛楄妭涓紝絎﹀悎0x0002%2=0銆傜涓変釜鍙橀噺c鐨勮嚜韜榻愬間負2錛屾墍浠ユ湁鏁堝榻愬間負2錛岄『搴忓瓨鏀?br>
鍦?x0006銆?x0007涓紝絎﹀悎0x0006%2=0銆傛墍浠ヤ粠0x0000鍒?x00007鍏卞叓瀛楄妭瀛樻斁鐨勬槸C鐨勫彉閲忋傚張C鐨勮嚜韜榻愬間負4錛屾墍浠?
C鐨勬湁鏁堝榻愬間負2銆傚張8%2=0,C鍙崰鐢?x0000鍒?x0007鐨勫叓涓瓧鑺傘傛墍浠izeof(struct C)=8. 鏈?
浜嗕互涓婄殑瑙i噴錛岀浉淇′綘瀵笴璇█鐨勫瓧鑺傚榻愭蹇靛簲璇ユ湁浜嗘竻妤氱殑璁よ瘑浜嗗惂銆傚湪緗戠粶紼嬪簭涓紝鎺屾彙榪欎釜姒傚康鍙槸寰堥噸瑕佺殑鍠旓紝鍦ㄤ笉鍚屽鉤鍙頒箣闂達紙姣斿鍦╓indows
鍜孡inux涔嬮棿錛変紶閫?榪涘埗嫻侊紙姣斿緇撴瀯浣擄級錛岄偅涔堝湪榪欎袱涓鉤鍙伴棿蹇呴』瑕佸畾涔夌浉鍚岀殑瀵歸綈鏂瑰紡錛屼笉鐒惰帿鍚嶅叾濡欑殑鍑轟簡涓浜涢敊錛屽彲鏄緢闅炬帓鏌ョ殑鍝_^銆?/font> ]]> 青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
91久久久久久国产精品 |
亚洲高清一区二 |
国产精品亚洲人在线观看 |
欧美高清免费 |
欧美日韩国产综合视频在线 |
欧美日韩国产一区 |
国产精品成人国产乱一区 |
欧美午夜电影网 |
国产精品久久久999 |
国产欧美日韩麻豆91 |
激情五月综合色婷婷一区二区 |
尤妮丝一区二区裸体视频 |
亚洲国产精品va在看黑人 |
99视频精品全部免费在线 |
艳女tv在线观看国产一区 |
亚洲欧美激情一区 |
久久精品国产综合 |
欧美激情免费观看 |
一区二区精品在线观看 |
欧美在线视频免费 |
欧美精品99 |
国产欧美日韩不卡免费 |
亚洲高清视频在线观看 |
亚洲一区二区三区精品在线观看
|
欧美激情bt |
日韩亚洲欧美精品 |
西西裸体人体做爰大胆久久久 |
免费观看在线综合色 |
国产精品成人v |
亚洲欧洲三级电影 |
欧美亚洲免费在线 |
亚洲国产一区在线 |
性8sex亚洲区入口 |
欧美天天影院 |
亚洲欧洲日本国产 |
久久久欧美精品 |
中文日韩电影网站 |
欧美国产丝袜视频 |
国内欧美视频一区二区 |
亚洲中无吗在线 |
欧美护士18xxxxhd |
久久精品国亚洲 |
国产日韩久久 |
亚洲欧美亚洲 |
亚洲美女在线国产 |
麻豆乱码国产一区二区三区 |
国产精品影视天天线 |
亚洲视频在线观看免费 |
亚洲高清视频一区二区 |
久久夜色精品亚洲噜噜国产mv |
国产精品美女久久久久久2018
|
欧美精品一区二区三区在线播放
|
午夜在线观看免费一区 |
欧美三区在线 |
亚洲精品日韩在线 |
欧美电影免费观看高清 |
久久精品夜色噜噜亚洲a∨
|
欧美视频在线观看免费 |
99热在这里有精品免费 |
欧美成人国产 |
久久精品一区二区三区四区 |
国产欧美二区 |
欧美一区二区三区播放老司机 |
亚洲国产欧美在线人成 |
欧美大片一区二区 |
亚洲精品久久久蜜桃 |
免费永久网站黄欧美 |
久久综合中文 |
亚洲日本va午夜在线电影 |
欧美国内亚洲 |
欧美国产精品一区 |
99精品国产在热久久下载 |
亚洲三级视频 |
欧美性猛交99久久久久99按摩
|
亚洲国产高清在线 |
蜜月aⅴ免费一区二区三区 |
亚洲电影在线免费观看 |
欧美xart系列在线观看 |
欧美成ee人免费视频 |
日韩午夜精品视频 |
国产精品99久久久久久白浆小说 |
国产精品久线观看视频 |
久久久国产成人精品 |
久久久噜噜噜久久中文字幕色伊伊 |
久久本道综合色狠狠五月 |
亚洲电影在线观看 |
99国产精品久久久久老师 |
国产精品区一区二区三 |
久久综合久久久 |
欧美黄色大片网站 |
午夜在线一区 |
六十路精品视频 |
亚洲午夜av |
久久亚洲精品网站 |
亚洲影音一区 |
猛男gaygay欧美视频 |
亚洲欧美日韩在线 |
久久久综合网站 |
亚洲午夜久久久 |
久久视频这里只有精品 |
亚洲男人的天堂在线aⅴ视频 |
久久国产手机看片 |
在线一区二区日韩 |
久久久爽爽爽美女图片 |
亚洲一区免费观看 |
久久久久9999亚洲精品 |
亚洲电影免费在线 |
国产精品日本精品 |
欧美国产日韩在线 |
国产久一道中文一区 |
亚洲国产第一页 |
国产偷国产偷亚洲高清97cao |
亚洲经典在线看 |
狠狠v欧美v日韩v亚洲ⅴ |
亚洲日韩中文字幕在线播放 |
国模套图日韩精品一区二区 |
一区二区三区精品在线 |
亚洲精品久久久久久久久久久久 |
久久成人精品视频 |
欧美诱惑福利视频 |
欧美新色视频 |
亚洲免费观看高清完整版在线观看熊
|
亚洲国产精品久久久久秋霞不卡 |
亚洲少妇一区 |
99伊人成综合 |
欧美激情久久久久久 |
欧美大片一区二区 |
国产亚洲欧洲997久久综合 |
亚洲校园激情 |
亚洲在线观看视频网站 |
美日韩在线观看 |
国产精品五月天 |
亚洲天堂av在线免费观看 |
亚洲午夜伦理 |
国产精品性做久久久久久 |
在线综合亚洲 |
亚洲欧美亚洲 |
国产精品一区亚洲 |
亚洲欧美电影院 |
欧美一级专区 |
国产伦精品一区二区三区四区免费 |
99在线视频精品 |
亚洲线精品一区二区三区八戒 |
欧美日韩在线三级 |
中文日韩电影网站 |
久久国产手机看片 |
国内精品视频666 |
久热re这里精品视频在线6 |
免费成人毛片 |
亚洲精品国产系列 |
欧美日韩国产首页在线观看 |
日韩午夜免费 |
欧美亚洲网站 |
黑丝一区二区 |
欧美黄色一区 |
亚洲一区二区伦理 |
久久一区中文字幕 |
91久久夜色精品国产网站 |
欧美sm重口味系列视频在线观看 |
亚洲国产欧美一区二区三区同亚洲 |
一区二区三区欧美在线观看 |
国产精品久久久久久久久久免费看
|
亚洲一区免费观看 |
久久爱www |
伊人久久噜噜噜躁狠狠躁 |
免费一区二区三区 |
一区二区三区国产盗摄 |
久久国产天堂福利天堂 |
亚洲精品乱码久久久久久久久 |
欧美特黄一级大片 |
久久亚洲一区二区 |
99re成人精品视频 |
久久久久久久999 |
亚洲精品中文字幕有码专区 |
国产精品嫩草99av在线 |
久久手机精品视频 |
一区二区三区四区精品 |
欧美不卡视频一区 |
亚洲砖区区免费 |
亚洲电影免费观看高清 |
国产精品永久免费在线 |
男人的天堂亚洲 |
性伦欧美刺激片在线观看 |
亚洲国产天堂久久国产91 |
先锋影音国产一区 |
日韩一区二区精品视频 |
国产日韩一区二区 |
欧美日韩视频在线 |
六十路精品视频 |
欧美一区二区久久久 |
99精品国产在热久久婷婷 |
女主播福利一区 |
久久精品国产成人 |
在线亚洲自拍 |
999在线观看精品免费不卡网站 |
国产一区二区三区四区在线观看 |
欧美午夜无遮挡 |
欧美人妖另类 |
免费亚洲网站 |
玖玖在线精品 |