1.delphi fillchar å¨åªä¸ªåå
delphi fillchar å¨åªä¸ªåå
Fillcharæ¯Turbo/Borland PascalçSystemåå çä¸ä¸ªæ åè¿ç¨ï¼å®ç使ç¨æ ¼å¼æ¯ï¼FillChar(var X; Count:
Word; value)ï¼å®çåè½æ¯ï¼ææå®åéXå¨å å段ä¸æå çä½Count个åèèµä¸ºç¸åçå¼valueï¼
å ¶ä¸valueæ¯å¡«å çå¼ï¼åªè½æ¯ByteãCharæBooleançååèç±»åçå¼ãå¨Free Pascalä¸ç¨å æ©å±ä¸ºFillChar(var X
Count: Longint; value),补码补码建行来源码 åè½æ²¡åã
[ä¾1]ï¼Fillcharé常ç¨æ¥ç»æ°æ®èµåå¼ã
var
a:array [1..] of arrtype
æ§è¡fillchar(a,sizeof(a),0)
å½arrtype为
1.real(å ¶ä»å®æ°ç±»åå·®ä¸å¤) 使å¾aä¸çå ç´ å ¨é¨æ为0.0
2.integer(byte,word,longint,shortinté½ç¸å) å ¨é¨ä¸º0
3.boolean å ¨é¨ä¸ºfalse
4.char å ¨é¨ä¸º#0
è¿é使ç¨äºå½æ°sizeof(a)ï¼å ¶åè½æ¯è¿ååéaæå çæ»åèæ°ï¼å¦ä¸ä¾è¿åï¼
å½arrtype为
1.real sizeof(a)çå¼ä¸ºï¼æ¯ä¸ªå ç´ å 6个åèï¼ä¸ªå ç´ å ±å 个åèï¼
ingle
izeof(a)çå¼ä¸ºï¼æ¯ä¸ªå ç´ å 4个åèï¼ä¸ªå ç´ å ±å 个åèï¼
double
izeof(a)çå¼ä¸ºï¼æ¯ä¸ªå ç´ å 8个åèï¼ä¸ªå ç´ å ±å 个åèï¼
extended
izeof(a)çå¼ä¸ºï¼æ¯ä¸ªå ç´ å 个åèï¼ä¸ªå ç´ å ±å 个åèï¼
com
izeof(a)çå¼ä¸ºï¼æ¯ä¸ªå ç´ å 8个åèï¼ä¸ªå ç´ å ±å 个åèï¼
2.integer(word) sizeof(a)çå¼ä¸º
ï¼æ¯ä¸ªå ç´ å 2个åèï¼ä¸ªå ç´ å ±å 个åèï¼
3.byte (shortint) sizeof(a)çå¼ä¸º
ï¼æ¯ä¸ªå ç´ å 1个åèï¼ä¸ªå ç´ å ±å 个åèï¼
4.longint sizeof(a)çå¼ä¸º ï¼æ¯ä¸ªå ç´ å 4个åèï¼ä¸ªå ç´ å ±å 个åèï¼
5.boolean sizeof(a)çå¼ä¸ºï¼æ¯ä¸ªå ç´ å 1个åèï¼ä¸ªå ç´ å ±å 个åèï¼
6.char sizeof(a)çå¼ä¸º
ï¼æ¯ä¸ªå ç´ å 1个åèï¼ä¸ªå ç´ å ±å 个åèï¼
æ以ä¾1çç»æå°±æ¯å°æ°ç»açææå ç´ ï¼å ¨é¨åèï¼ç¨0æ¥å¡«å ï¼è¦æ³¨æ对ä¸åç±»åçæ°æ®èè¨ï¼å¯¹â0âçâ解éâæ¯æªç¶ä¸åçï¼å¯¹æ´åæå®åéæ¥
讲ï¼ææåèå为0ï¼å该éä¹ä¸º0ï¼å¯¹booleanåéï¼ä¸ä¸ªåèï¼æ¥è®²ï¼0表示falseï¼é0æ°è¡¨ç¤ºtrueï¼ï¼å该é为falseï¼å¯¹charå
éï¼ä¸ä¸ªåèï¼æ¥è®²ï¼0表示ASCIIç å¼ä¸º0çå符ï¼å该é为#0ã
[ä¾2]ï¼å°ä¸ä¾ä¸çfillchar(a,sizeof(a),0)æ¹ä¸º
fillchar(a,sizeof(a),1)ï¼ç»æå¦ä½å¢ï¼
æ§è¡fillchar(a,size(a),1)
å½arrtype为
1.boolean å ¨é¨ä¸ºtrue(1æ¯é0å¼ï¼è¡¨ç¤ºtrue)
2.char å ¨é¨ä¸º#1
3.byteï¼shortint
æ¯ä¸ªå ç´ æ¯1åèéï¼å ¨é¨ä¸º1
4.integer,word æ¯ä¸ªå ç´ æ¯2åèéï¼å ¨é¨ä¸º()ãè¿æ¯å 为
å¨ä¸ä¸ªintegeræword ååéä¸ï¼å®çé«ãä½ä¸¤ä¸ªåèåç¨1æ¥å¡«å ï¼å°è¿å¶æ°1转å为äºè¿å¶æ°ï¼ï¼ç»æ为ï¼
é«åè ä½åè
9 8 | 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 1
| 0 0 0 0 0 0 0 1
æ¾ç¶ï¼å¾å°çéå°±æ¯()=()2ã
å¦æï¼æ§è¡çæ¯fillchar(a,size(a),),ç»æåæ¯ææ ·çï¼
å 为()=()2,æ以ï¼å¡«å å为ï¼
é«åè ä½åè
9 8
| 7 6 5 4 3 2 1 0
1 0 1 0 1 0 1 1 | 1 0 1 0 1 0 1 1
对äºintegerç±»åçéï¼å ¶å¼ä¸º(-),è¿æ¯å 为integerç±»åçæ°æ®æ¯ç¨è¡¥ç 表示çæ符å·æ°ï¼æé«ä½æ¯ç¬¦å·ä½ï¼0表示
æ£ï¼1表示è´ï¼ç±äºæ¬æ°æ¯è´æ°,è¡¥ç 为ï¼ååç 为ï¼åç 为
ï¼å ¶å¼ä¸º-(++++++1)=-()ï¼å¯¹äºwordç±»åçéï¼å ¶å¼
为(),è¿æ¯å 为wordç±»åçæ°æ®æ¯ç¨åç 表示çæ 符å·æ°ï¼éè´æ°ï¼ï¼åç 为ï¼å ¶å¼ä¸º(+
++++++++1)=()ï¼
5.longint
æ¯ä¸ªå ç´ æ¯4åèéï¼æ§è¡fillchar(a,size(a),1)å,å ¨é¨ä¸º()ãè¿æ¯å 为,对äºæ¯ä¸ªå ç´ æ¥è®²,ç¨1å¡«å åå为:
æé«åè 次é«åè
|
0 0 0 0 0 0 0 1 | 0 0 0 0 0 0 0 1
次ä½åè æä½åè
9
8 | 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 1 | 0 0 0 0 0 0 0 1
longintç±»åçæ°æ®æ¯ç¨è¡¥ç 表示çæ符å·æ°ï¼æé«ä½æ¯ç¬¦å·ä½ï¼0表示æ£ï¼1表示è´ï¼ç±äºæ¬æ°æ¯æ£æ°,æ è¡¥ç ãåç ååç å为
ï¼å ¶å¼ä¸º(+++1)=( )ï¼
å¦æï¼æ§è¡çæ¯fillchar(a,size(a),),ç»æåæ¯ææ ·çï¼
ç±äº()=()2,æ å¡«å å,è¡¥ç 为,å®æ¯è´æ°,
åå ¶åç 为,åç 为 ,å ¶å¼ä¸º-1
6.single
æ¯ä¸ªå ç´ æ¯4åèéï¼å ¨é¨ä¸º2.E-,è¿æ¯å 为,对äºæ¯ä¸ªå ç´ æ¥è®²,ç¨1å¡«å åçç»æä¸longintç±»åçäºè¿å¶ç å®å ¨ç¸å,ä½æ¯,
ingleç±»å对æ¤æ°æ®çâ解éâå´å®å ¨ä¸åï¼
A.æé«ä½(第ä½)æ¯æ´ä¸ªæ°ç符å·ä½,0为æ£, 1为è´
B.æ¥çç8ä½(第ä½è³ç¬¬ä½)æ¯ç¨ç§»ç 表示çé¶ç
C.åé¢çä½(第è³ç¬¬0ä½)表示尾æ°
D.å精度éçå¼ä¸ºï¼Â±2å®é ææ°*å®é å°¾æ°
â ãè¥é¶ç =ï¼åå®é ææ°=-ï¼å®é å°¾æ°=(0.?)2,å ¶ä¸ç?代表ç¸åºä½ç½®ä¸çäºè¿å¶ç (0æ1);æ¾ç¶,å¨ï¼å ¨ä¸º0æ¶,
è¿ä¸ªå精度éçå¼ä¸º0
â¡ãè¥é¶ç 大äºä¸å°äºï¼åå®é ææ°=é¶ç -()=é¶ç -ï¼å®é å°¾æ°=(1.?)2
â¢ãINFï¼æ 穷大ï¼è¥é¶ç =ï¼å°¾æ°å ¨0ï¼å已达ä¸çï¼è¢«ä½ä¸ºæ 穷大
â£ãæµ®ç¹è¿ç®é误ï¼è¥é¶ç =ï¼å°¾æ°å¨ï¼ï¼
ï¼ä¹é´ã
â¤ãNANï¼éæ°:Not A
Numberï¼è¥é¶ç =ï¼å°¾æ°å¨[ï¼ ]ä¹é´
ä¸é¢,æ们æ¥åæäºè¿å¶ç 为çå精度æ°(singleç±»å)çå¼æ¯å¤å°ãâ æ
é«ä½ä¸º0ï¼è¡¨ç¤ºæ£æ°ï¼â¡é¶ç 为ï¼æ¢æè¿å¶æ°ä¸º2ï¼åå®é ææ°=2-=-ï¼â¢å°¾æ°ä¸º
ï¼å®é å°¾æ°=1. ,
æ¢æè¿å¶æ°ä¸º1+2-7+2-+2-=1.,
â£æ¤å精度æ°çå¼æ¯+2-*1.â2.e-
7.å ¶ä»å®æ°ç±»åå°±ä¸ä¸ä¸å举äºã
8.对äºéåç±»å è¥arrtype=set of '#'..'z'
æ§è¡fillchar(a,sizeof(a),0)åçç»æï¼aå ¨ä¸ºç©ºéï¼sizeof(a)è¿åã为ä»ä¹sizeof(a)çå¼ä¸ºï¼å
æ¥ï¼å¯¹éåç±»åæ¥è®²ï¼ç±äºå ç´ èå´äºå å¿ é¡»ç»å®ï¼å¦'#'..'z'ï¼ï¼æ¯ä¸ªå ç´ æ¯å¦åå¨äºæéåä¸ï¼åªéç¨0æ1è®°ä¸å³å¯ï¼ç¨0表示该å ç´ ä¸å±äºæé
åï¼ç¨1表示该å ç´ å±äºæéåï¼å³åªç¨1个äºè¿å¶ä½å°±å¯è¡¨ç¤º1个å ç´ æ¯å¦å±äºæéåï¼é£ä¹åªè¦æ们æå ç´ çåºå·é¡ºåºè®°ä¸ä¸ä¸²äºè¿å¶ä»£ç ï¼å°±å¯ä»¥æ è®°ææè
å´å çå ç´ æ¯å¦å±äºæéåäºãä½è¿éæä¸ä¸ªé®é¢ï¼æ°æ®çåå¨é常æ¯ä»¥åè为åä½è¿è¡çï¼ä¸æ¯ç´æ¥è®¿é®æ¯ä¸ä¸ªäºè¿å¶ä½ï¼å æ¤ï¼å¿ é¡»å°ç¨æ·ç»å®çå ç´ çèå´è¿
è¡è°æ´ï¼è°æ´ååæ¯ï¼ä¸¤ç«¯éå½å¤æ©,使第ä¸ä¸ªå ç´ çåºå·ä»¥åå ç´ ç个æ°æ£å¥½æ为8çåæ°ï¼è¿æ ·å°±å¯ä»¥åè为åä½åå¨éåäºãå³ï¼è¥arrtype=set of
char1..char2ï¼äºå è¦å®ä¹char1,char2常éï¼ï¼åèå´æ©å¤§ä¸ºnewchar1..newchar2,å ¶ä¸newchar1=chr
(ord(char1)-ord(char1) mod 8), newchar2=chr(ord(char2)+7-ord(char2) mod
8)ã对äºarrtype=set of
'#'..'z'ï¼ç¨æ·ç»å®çèå´æ¯ï¼#..#,åæ©å¤§åçå®é èå´æ¯#..#ï¼å ç´ ä¸ªæ°ä¸ºï¼éè¦ç¨bit=byte表
示ï¼æ æ°ç»aä¸æ¯ä¸ªå ç´ ï¼æ°ç»ä¸çå ç´ ï¼å åèï¼å ±ä¸ªå ç´ è¦å åèã
é®é¢ï¼å¯¹äºarrtype=set of '#'..'z'
æ§è¡fillchar(a,sizeof(a),)åçç»ææ¯ä»ä¹å¢ï¼()= ()2, æ°ç»aä¸æ¯ä¸ªå ç´ å¦a[1]å åèï¼å³ï¼
ï¼
å ±ä¸ªäºè¿å¶ä½ï¼æä½ä½ä¸º1ï¼è¡¨ç¤ºæ©å±åèå´å ç第1个éåå ç´ ï¼#å³ç©ºæ ¼ï¼å±äºéåa[1]ï¼ç¬¬2ä½ä¸º1ï¼è¡¨ç¤ºç¬¬2个å ç´ ï¼#å³âï¼âï¼å±äº
éåa[1]ï¼ç¬¬3ä½ä¸º1ï¼è¡¨ç¤ºç¬¬3个å ç´ ï¼#å³â"âï¼å±äºéåa[1]ï¼ç¬¬4ä½ä¸º0ï¼è¡¨ç¤ºç¬¬4个å ç´ ï¼#å³â#âï¼ä¸å±äºéåa[1]ï¼ä¾æ¤
ç±»æ¨ãå ¶ä»çæ°ç»å ç´ a[2],a[3],...,a[]é½ä¸a[1]ç¸åã
[ä¾3]é¨ååèå¡«å é®é¢ãåé¢è®²çé½æ¯å ¨é¨åè被填å ï¼å 为ç¨äºsizeof()å½æ°ï¼
对ä¾1ï¼è¥æ§è¡fillchar(a,1,)ï¼å³å°åéaç第ä¸ä¸ªåèï¼ä¸æ æå°çå ç´ çæä½åèï¼å¡«å 为()ï¼å ¶åçé·åã
[å°ç»] Fillchar(var X; Count: Word
value)è¿ç¨çåè½æ¯ï¼ææå®åéXå¨å å段ä¸æå çä½Count个åèä¸çæ¯ä¸ªåèç¨ä¸ä¸ªåèçæ°æ®valueæ¥å¡«å ï¼ç±äºåç§æ°æ®ç±»å对ç¸åçäº
è¿å¶ç å ·æä¸åç解éï¼æ æåå¾å°çç»æä¹å¤§ç¸å¾åºãæ¬ææ¢è®¨äºåç§ç±»åæ°æ®çå é¨åå¨æºå¶ï¼æå©äºå 深对æ°æ®ç±»åçç解ã