全國

熱門(mén)城市 | 全國 北京 上海 廣東

華北地區 | 北京 天津 河北 山西 內蒙古

東北地區 | 遼寧 吉林 黑龍江

華東地區 | 上海 江蘇 浙江 安徽 福建 江西 山東

華中地區 | 河南 湖北 湖南

西南地區 | 重慶 四川 貴州 云南 西藏

西北地區 | 陜西 甘肅 青海 寧夏 新疆

華南地區 | 廣東 廣西 海南

  • 微 信
    高考

    關(guān)注高考網(wǎng)公眾號

    (www_gaokao_com)
    了解更多高考資訊

首頁(yè) > 高中頻道 > 信息學(xué)聯(lián)賽輔導 > 信息學(xué)聯(lián)賽輔導:Fillchar過(guò)程全解

信息學(xué)聯(lián)賽輔導:Fillchar過(guò)程全解

2009-11-12 22:10:14網(wǎng)絡(luò )

PDF version of this document
Fillchar是Turbo/Borland Pascal的System單元的一個(gè)標準過(guò)程,它的使用格式是:FillChar(var X; Count: Word; Value),它的功能是,把指定變量X在內存段中所占的低Count個(gè)字節賦為相同的值Value, 其中Value是填充的值,只能是Byte、Char或Boolean等單字節類(lèi)型的值。在Free Pascal中稍加擴展為FillChar(var X; Count: Longint; Value), 功能沒(méi)變。 
[例1]:Fillchar通常用來(lái)給數據賦初值。 
var a:array [1..10] of arrtype; 
執行fillchar(a,sizeof(a),0);
當arrtype為
1.real(其他實(shí)數類(lèi)型差不多)                    使得a中的元素全部成為0.0
2.integer(byte,word,longint,shortint都相同)   全部為0
3.boolean                                     全部為false
4.char                                        全部為#0 
這里使用了函數sizeof(a),其功能是返回變量a所占的總字節數,如上例返回: 
當arrtype為
1.real               sizeof(a)的值為60(每個(gè)元素占6個(gè)字節,10個(gè)元素共占60個(gè)字節)
 single              sizeof(a)的值為40(每個(gè)元素占4個(gè)字節,10個(gè)元素共占40個(gè)字節)
 double              sizeof(a)的值為80(每個(gè)元素占8個(gè)字節,10個(gè)元素共占80個(gè)字節)
 extended            sizeof(a)的值為100(每個(gè)元素占10個(gè)字節,10個(gè)元素共占100個(gè)字節)
 comp                sizeof(a)的值為80(每個(gè)元素占8個(gè)字節,10個(gè)元素共占80個(gè)字節)
2.integer(word)      sizeof(a)的值為20 (每個(gè)元素占2個(gè)字節,10個(gè)元素共占20個(gè)字節)
3.byte (shortint)    sizeof(a)的值為10 (每個(gè)元素占1個(gè)字節,10個(gè)元素共占10個(gè)字節)
4.longint            sizeof(a)的值為40 (每個(gè)元素占4個(gè)字節,10個(gè)元素共占40個(gè)字節)
5.boolean            sizeof(a)的值為10(每個(gè)元素占1個(gè)字節,10個(gè)元素共占10個(gè)字節)
6.char               sizeof(a)的值為10 (每個(gè)元素占1個(gè)字節,10個(gè)元素共占10個(gè)字節) 
所以例1的結果就是將數組a的所有元素(全部字節)用0來(lái)填充,要注意對不同類(lèi)型的數據而言,對“0”的“解釋”是截然不同的!對整型或實(shí)型量來(lái)講,所有字節均為0,則該量也為0;對boolean型量(一個(gè)字節)來(lái)講,0表示false(非0數表示true),則該量為false;對char型量(一個(gè)字節)來(lái)講,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  每個(gè)元素是1字節量,全部為1
4.integer,word   每個(gè)元素是2字節量,全部為(257)10。這是因為 
在一個(gè)integer或word 型變量中,它的高、低兩個(gè)字節均用1來(lái)填充(將10進(jìn)制數1轉化為二進(jìn)制數00000001),結果為: 
高字節 
 低字節 
15 
 14 
 13 
 12 
 11 
 10 
 9 
 8 
 7 
 6 
 5 
 4 
 3 
 2 
 1 
 0 
 

 0 
 0 
 0 
 0 
 0 
 0 
 1 
 0 
 0 
 0 
 0 
 0 
 0 
 0 
 1 
 

顯然,得到的量就是(257)10=(0000000100000001)2。 
如果,執行的是fillchar(a,size(a),171),結果又是怎樣的? 
因為(171)10=(10101011)2,所以,填充后為: 
高字節 
 低字節 
 

[標簽:競賽聯(lián)賽 學(xué)習方法]

分享:

高考院校庫(挑大學(xué)·選專(zhuān)業(yè),一步到位。

高考院校庫(挑大學(xué)·選專(zhuān)業(yè),一步到位。

高校分數線(xiàn)

專(zhuān)業(yè)分數線(xiàn)

日期查詢(xún)
  • 歡迎掃描二維碼
    關(guān)注高考網(wǎng)微信
    ID:gaokao_com

  • 👇掃描免費領(lǐng)
    近十年高考真題匯總
    備考、選科和專(zhuān)業(yè)解讀
    關(guān)注高考網(wǎng)官方服務(wù)號


日本一道免费7788www_国产香蕉尹人综合在线观看_天天看视频专区一区二区素人_日本Aⅴ大伊香蕉精品视频