版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
計算機概論第二版FoundationsofComputerScienceChapter3資料的儲存計算機概論第二版FoundationsofCompu13.1資料型態現今的資料有不同的形式,包含數值、文字、音訊、圖像和視訊(圖3.1)。人類需要能夠處理各種不同型態的資料:工程應用程式利用電腦處理數值:包括作算術運算、解決代數或三角方程式、微分方程式的解等。文書處理程式利用電腦處理文字:排版、移動、刪除等。處理語音資料,播放音樂以及將聲音記錄成資料。利用電腦處理圖像:包括建立、縮小、擴展、旋轉等。播放電影,產生電影中所看到的特效。p.40電腦產業使用「多媒體」來定義包含數值、文字、圖像、音訊和視訊的資訊。3.1資料型態現今的資料有不同的形式,包含數值、文字、音2p.40圖3.1
不同型態的資料p.40圖3.1不同型態的資料3電腦內部的資料當所有的資料型態儲存到電腦時,都被轉換成一致的表達方式,稱為位元樣式。位元〔bit,二進位數字(binarydigit)〕是電腦裡可被儲存的最小資料單元,而且其值為0或1。為了表示不同型態的資料,我們使用位元樣式(bitpattern),這是一連串位元,又稱為位元字串(astringofbits)。一個具有8位元的位元樣式稱為一個位元組(byte)。字組(word)表示較長的位元樣式。屬於不同資料型態的一筆資料可能在記憶體內儲存成相同的樣式。p.40電腦內部的資料p.404p.41圖3.2
位元樣式p.41圖3.2位元樣式5p.41圖3.3
不同資料型態的儲存p.41圖3.3不同資料型態的儲存63.2儲存數值一個數值在儲存到電腦記憶體內部之前,會先被轉換成二進位系統。有兩個問題需要處理: 1.如何儲存數值的符號。 2.如何表示小數點。電腦使用兩種不同的表示法:定點法(fixed-point)和浮點法(floating-point)。第一種表示法是將一個數值儲存成一個整數,第二種則是將一個數值儲存成一個實數。p.423.2儲存數值一個數值在儲存到電腦記憶體內部之前,會先被7儲存整數一個整數可以視為是一個小數點位置固定的數值:小數點在最低有效(最右邊)位元的右邊。在定點數表示法(fixed-pointrepresentation)中假設有小數點但並不儲存。p.42一個整數儲存在記憶體中通常是使用定點數表示法。儲存整數p.42一個整數儲存在記憶體中通常是使用定點數8p.42圖3.4
整數的定點數表示法p.42圖3.4整數的定點數表示法9無號整數(unsignedinteger)的範圍介於0和正無窮大之間。其值為(2n
–1),其中n表示一個無號數所配置的位元數目。儲存一個無號整數: 1.整數轉換成二進位。 2.如果位元數小於n,則將0加到此二進位整數的左方,使得全部共有n位元。如果位元數大於n,則此整數不能儲存,將會發生溢位情況。p.43無號整數(unsignedinteger)的範圍介於010範例
3.1儲存7到8位元的記憶體位置,使用無號數表示法。解答首先轉換整數成二進位(111)2,加上五個0使全部為8個位元,(00000111)2。此整數儲存到記憶體位置中,注意下標2是用來強調此整數是二進位,但是該下標並不儲存在電腦中。p.43轉換7成為二進位在左邊加五個位元範例3.1p.43轉換7成為二進位在左邊加五個位11範例
3.2儲存
258至
16位元的記憶體位置。解答首先轉換整數成二進位,(100000010)2,加上七個
0使全部為
16個位元,(0000000100000010)2。此整數儲存到記憶體位置中。p.43轉換258成為二進位在左邊加七個位元範例3.2p.43轉換258成為二進位在左邊加七12範例
3.3當一個輸出裝置取回儲存在記憶體中的位元字串00101011來當作一個無號整數時,會傳回什麼?解答使用示於第2章中的程序,此二進位整數被轉換成無號整數43。p.44範例3.3p.4413溢位在一個n位元的記憶體位置中,只能儲存一個介於0與2n
–1之間的無號整數。如果我們嘗試要儲存一個整數的值大於24–1=15到只有四個位元的記憶體位置中,這種情況稱為溢位(overflow)。p.44溢位p.4414p.44圖3.5
無號整數中的溢位p.44圖3.5無號整數中的溢位15無號整數的應用無號整數表示法可以增進儲存的效率,因為我們不需要儲存整數的符號。無號整數表示法可以使用於當我們不需要負整數的時候:計數(counting)定址(addressing)儲存其他資料型態p.45無號整數的應用p.4516p.45圖3.6
符號大小表示法p.45圖3.6符號大小表示法17符號大小表示法以符號大小格式儲存整數需要1個位元來表示符號(0表示正,1表示負)。n位元配置所能儲存數值範圍為–(2n–1–1)到+(2n–1–1)。在n位元的配置中,最左邊的位元專用於儲存符號(0為正,1為負)。p.45在符號大小表示法中,有兩個0:+0與–0。符號大小表示法p.45在符號大小表示法中,有兩個0:18範例
3.4儲存+28至8位元的記憶體位置,使用符號大小表示法。解答將此整數轉換成7位元之二進位值,最左邊位元設為0。儲存此
8位元數值。p.46轉換28至7位元二進位值加上符號並儲存範例3.4p.46轉換28至7位元二進位值加19範例
3.5儲存–28至8位元的記憶體位置,使用符號大小表示法。解答將此整數轉換成7位元之二進位值,最左邊位元設為1。儲存此8位元數值。p.46轉換28至7位元二進位值加上符號並儲存範例3.5p.46轉換28至7位元二進位值加20範例
3.6取回以符號大小表示法儲存成01001101的整數。解答因為最左邊位元為0,符號為正。其餘位元(1001101)轉換成十進位為77。加上符號之後,此整數為+77。p.46範例3.6p.4621範例
3.7取回以符號大小表示法儲存成10100001的整數。解答因為最左邊位元為1,符號為負。其餘位元(0100001)轉換成十進位為17。加上符號之後,此整數為–17。p.46範例3.7p.4622p.47圖3.7
符號大小表示法之溢位p.47圖3.7符號大小表示法之溢位232補數表示法幾乎所有的電腦都使用2補數(two’scomplement)表示法來儲存一個n位元記憶體位置中的有號整數。p.47圖3.8
2補數表示法在2補數表示法中,最左邊位元定義了整數的符號。如果該位元為0,則此整數為正;如果該位元為1,則此整數為負。2補數表示法p.47圖3.82補數表示法在24兩種運算第一種稱為1補數(one’scompleting)或取整數的1補數。此運算僅簡單地反相(反轉)每一個位元,0位元改變成1位元,1位元改變成0位元。第二個運算稱為2補數或取二進位整數的2補數,此運算分兩步驟完成。首先,從右邊開始複製位元直到第一個1為止,然後反轉其餘的位元。另一個取整數的2補數之方法是先取1補數,然後再將結果加1。p.48兩種運算p.4825範例
3.8底下顯示我們如何取整數00110110的1補數。p.48範例3.8p.4826範例
3.9底下顯示我們得到原始整數,如果我們應用1補數運算兩次。p.48範例3.9p.4827範例
3.10底下顯示我們如何取整數00110100的2補數。p.49範例3.10p.4928範例
3.11底下顯示我們永遠會得到原始整數,如果我們應用2補數運算兩次。p.49範例3.11p.4929以2補數格式儲存整數 以2補數表示法儲存整數,電腦遵循下列步驟:整數轉換成n位元之二進位。如果此整數是正或零,則依照原樣式儲存;如果此整數是負,電腦取此整數的2補數然後再儲存。取回2補數格式之整數 取回2補數格式之整數,電腦遵循下列步驟:如果最左邊位元是1,電腦對此整數執行2補數運算。如果是0,不執行任何運算。電腦將此整數轉換成十進位。p.49以2補數格式儲存整數p.4930範例
3.12儲存整數28至8位元的記憶體位置,使用2補數表示法。解答此整數為正(無符號表示為正),所以在十進位轉換成二進位之後無須另外的動作。注意五個額外的0被加到此整數的左邊,使其成為八個位元。p.50範例3.12p.5031範例
3.13儲存整數–28至8位元的記憶體位置,使用2補數表示法。解答此整數為負,所以轉換成二進位之後,電腦對此整數執行2補數運算。p.50範例3.13p.5032範例
3.14取回以2補數格式儲存成00001101的整數。解答因為最左邊位元為0,所以此整數為正。此整數轉換成十進位並且加上符號。p.50範例3.14p.5033範例
3.15取回以2補數格式儲存成11100110的整數。解答因為最左邊位元為1,所以此整數為負。此整數轉換成十進位之前需要取2補數。p.50範例3.15p.5034p.51圖3.9
2補數表示法之溢位p.51圖3.92補數表示法之溢位35p.52表3.1
整數表示法之總結p.52表3.1整數表示法之總結36儲存實數實數(real)是一個具有整數部分和分數部分的數值。例如23.7是一個實數──整數部分是23,而分數部分是7/10。p.53具有很大的整數部分或很小的分數部分之實數不應該儲存成定點數表示法。儲存實數p.53具有很大的整數部分或很小的分數部分之實37範例
3.16在十進位系統中,假設我們使用定點數表示法,兩個數字在小數點右邊和十四個數字在小數點左邊,總共有十六個數字。在這系統中實數的精確度會不準,如果我們要表示一個十進位數字例如1.00234;這系統會將此數值存成1.00。p.53範例3.16p.5338範例
3.17在十進位系統中,假設我們使用定點數表示法,六個數字在小數點右邊和十個數字在小數點左邊,總共有十六個數字。在這系統中實數的精確度會不準,如果我們要表示一個十進位數字例如236154302345.00,這系統會將此數值存成6154302345.00,整數部分遠小於其應有的大小。p.53範例3.17p.5339浮點數表示法保持正確性或精確度的解決方法是使用浮點數表示法(floating-pointrepresentation)。在浮點數表示法中,一個數值是由三個欄位所組成。第一個欄位是符號,不是正就是負。第二個欄位顯示小數點應該從實際數值往右或往左位移多少位置。第三個欄位是定點數表示法,其小數點位置是固定的。定點數欄位只有一個數字在小數點左邊,而位移量是10的次方,稱為科學記號(scientificnotation)。p.53一個數值的浮點數表示法是由三個部分所組成:符號、位移量和定點數。浮點數表示法p.53一個數值的浮點數表示法是由三個部分40p.53圖3.10
浮點數表示法之數值的三個部分p.53圖3.10浮點數表示法之數值的三個部分41範例
3.18底下顯示十進位數值7,425,000,000,000,000,000,000.00之科學記號(浮點數表示法)。解答p.54範例3.18p.5442範例
3.19以科學記號顯示數值–0.0000000000000232。解答我們使用上一範例中相同方法──移動小數點到數字2之後,如下方所示:p.54範例3.19p.5443範例
3.20以浮點數格式儲存數值
(101001000000000000000000000000000.00)2。解答我們使用相同的想法,保持只有一個數值在此小數點的左邊。p.55範例3.20p.5544範例
3.21以浮點數格式儲存數值–(0.00000000000000000000000101)2。解答我們使用相同的想法,保持只有一個非零數字在此小數點的左邊。p.55範例3.21p.5545正規化為了使表示法的定點數部分一致,科學方法(十進位系統)和浮點數方法(二進位系統)使用在小數點左邊只有一個非零數字,這稱為正規化(normalization)。p.55正規化p.5546符號、指數和尾數一個二進位數值正規化之後,僅有此數值三個部分的資訊被儲存:符號、指數和尾數(小數點右邊的位元)。例如,+1000111.0101變成:p.55注意小數點和定點數欄位左邊的位元1並沒有加以儲存,它們是隱含的。符號、指數和尾數p.55注意小數點和定點數欄位左邊的位47符號數值的符號可以使用1位元儲存(0或1)。指數指數(2的次方)定義小數點的位移。超碼(Excess)表示法是用來儲存指數的方法。尾數尾數(mantissa)是指小數點右邊的二進位整數,它定義了數值的精確度。尾數是以定點數記法儲存。記住這並不是一個整數──而是儲存成類似整數的分數部分。p.56符號p.5648超碼系統在超碼系統(Excesssystem)中,正整數和負整數都儲存成無號整數。要表示一個正或負整數,有一個正整數〔稱為偏移值(bias)〕要加到每一個數值以便將它們一律移動到非負數值的那一邊。這個偏移值為2m–1–1,其中m是儲存指數之記憶體的大小。p.56超碼系統p.5649範例
3.22我們可以用
4位元配置的數值系統來表達
16個整數。使用一個位置表示
0
並且平分其餘
15個(並非完全相等均分)可表達範圍為
–7到
8的數值,如圖3.11所示。藉由加上7個單位到此範圍的每一個整數,我們可以將所有的整數一律往右移動並且讓它們成為正數,而不必改變這些整數彼此間相關的位置,如此圖所示。這新系統稱為超7(Excess-7)系統,或偏移值為7之偏移表示法。p.56範例3.22p.5650p.57圖3.11
超碼表示法之位移p.57圖3.11超碼表示法之位移51電機電子工程師協會標準電機電子工程師協會(InstituteofElectricalandElectronicsEngineers;IEEE)為浮點數定義了幾種標準。此處我們討論兩種最常用的標準,單精度和倍精度。單精度格式使用32位元來儲存浮點表示法之實數。符號佔1個位元(0為正1為負),指數佔8個位元(使用偏移值127),尾數使用23個位元(無號數)。有時就是指超
127(Excess_127),因為偏移值為127。p.57電機電子工程師協會標準p.5752p.57圖3.12
IEEE標準之浮點數表示法p.57圖3.12IEEE標準之浮點數表示法53倍精度格式使用總共64位元來儲存浮點表示法之實數。符號佔1個位元,指數佔11個位元(使用偏移值1023),尾數使用52個位元。有時就是指超
1023(Excess_1023),因為偏移值為1023。p.58表3.2
兩種IEEE浮點數標準的規格倍精度格式使用總共64位元來儲存浮點表示法之實數。符號佔54IEEE標準浮點數之儲存一個實數可以用IEEE標準浮點數格式之一來加以儲存,使用下列程序: 1.儲存符號於S(0或1)。 2.改變數值成為二進位。 3.正規化。 4.找出E和M之值。 5.連結S、E和M。p.58IEEE標準浮點數之儲存p.5855範例
3.23顯示十進位數值5.75之超127(單精度)表示法。解答a.符號為正,所以S=0。b.十進位至二進位之轉換:5.75=(101.11)2。c.正規化:(101.11)2=(1.011)2×22。d.E=2+127=129=(10000001)2,M=0111。我們需要加19個零在M的右邊使其成為23個位元。e.這表示顯示如下:此數值儲存在電腦中為01000000101110000000000000000000。p.58範例3.23p.5856範例
3.24顯示十進位數值–161.875的超127(單精度)表示法。解答a.符號為負,所以S=1。b.十進位至二進位之轉換:161.875=(10100001.111)2。c.正規化:(10100001.111)2=(1.0100001111)2×27。d.E=7+127=134=(10000110)2,M=(0100001111)2。e.表示:此數值儲存在電腦中為11000011010000111100000000000000。p.59範例3.24p.5957範例
3.25顯示十進位數值–0.0234375的超127(單精度)表示法。解答a.S=1(此數值為負)。b.十進位至二進位之轉換:0.0234375=(0.0000011)2。c.正規化:(0.0000011)2=(1.1)2×2–6。d.E=–6+127=121=(01111001)2,M=(1)2。e.表示:此數值儲存在電腦中為10111100110000000000000000000000。p.59範例3.25p.5958取回以IEEE標準浮點數格式儲存之數值以IEEE標準浮點數格式之一所儲存之數值,可以使用下列方法取回: 1.找出S、E和M之值。 2.如果S=0,符號設為正,否則,符號設為負。 3.找出為位移值(E–127)。 4.反正規化尾數。 5.改變反正規化後之數值成為二進位以便找出絕對值。 6.加上符號。p.59取回以IEEE標準浮點數格式儲存之數值p.5959範例
3.26位元樣式(11001010000000000111000100001111)2
以超127格式存在記憶體中。顯示此數值之十進位記法。解答a.第一個位元表示S,之後8個位元為E,其餘23個位元為M。b.符號為負。c.位移量=E–127=148–127=21。d.反正規化得到(1.00000000111000100001111)2×221。e.二進位數值為(1000000001110001000011.11)2。f.絕對值為2,104,378.75。g.此數值為–2,104,378.75。p.60範例3.26p.6060在浮點數的情況中,會有溢位和下限溢位(underflow)。圖3.13顯示了使用32位元記憶體位置(超127)浮點表示法的範圍。此表示法不能儲存具有非常小或非常大的絕對值之數值。一個實數之整數部分和分數部分設為零,亦即0.0,不能使用上面所討論的步驟來加以儲存。在此情況下將符號、指數和尾數都設為0。在原來的數值與取回的數值之間的差稱為捨棄誤差(truncationerror)。這種誤差的類型在使用到非常大或非常小的數值之領域中是很重要的,例如太空工業中的計算。p.60在浮點數的情況中,會有溢位和下限溢位(underflow)。61p.60圖3.13
實數的浮點數表示法之溢位與下限溢位p.60圖3.13實數的浮點數表示法之溢位與下限623.3儲存文字文字(text)用一個位元樣式來表達每一個符號。在一個位元樣式裡需要用多少個位元來表示一種語言中的一個符號?這取決於此語言所使用的符號集合裡的數量。符號的位元樣式長度取決於符號的數量;但兩者之間不是線性關係:而是對數關係。如果需要四個符號,長度為兩個位元(log24=2)。p.613.3儲存文字文字(text)用一個位元樣式來表達每一個63p.61圖3.14
使用位元樣式表示符號p.61圖3.14使用位元樣式表示符號64p.62表3.3
符號數量與位元樣式長度p.62表3.3符號數量與位元樣式長度65編碼法不同的位元樣式組合,可用來表達文字符號。每一個集合稱為一種編碼法(code),而表達符號的過程稱為編碼。ASCII美國國家標準局(AmericanNationalStandardsInstitute;ANSI)發展了一套編碼法稱為美國資訊交換標準碼(AmericanStandardCodeforInformationInterchange;ASCII),每個符號使用了7個位元,表示在這個編碼法中可以定義出27=128個不同的符號。萬國碼一個硬體和軟體廠商所組成的聯盟已經設計了一套編碼法稱為萬國碼(Unicode),它使用32位元,因此可表示多達232=4,294,967,296個符號。編碼中不同的區段分別配置給世界上不同語言中的符號來使用,某些部分的萬國碼則用來表示繪圖和特殊符號。p.62編碼法p.62663.4儲存音訊音訊(audio)是一種聲音和音樂的表達方式。音訊是不可計數的。音訊是隨時間改變的實體──只能測量每個時刻的聲音強度。要儲存音訊到電腦記憶體時,意指儲存一段時間:一秒或一小時音訊訊號的強度。音訊是一種類比(analog)資料,無法儲存所有的值到電腦記憶體。取樣(sampling)是指只選擇類比訊號上的有限數量的點,測量這些點的值,並記錄這些值。p.633.4儲存音訊音訊(audio)是一種聲音和音樂的表達方67p.63圖3.15
音訊訊號p.63圖3.15音訊訊號68p.63圖3.16
音訊訊號的取樣p.63圖3.16音訊訊號的取樣69在每一秒鐘之內需要多少樣本才能取得原始訊號的複本?樣本的數量取決於類比訊號中變換的最大數量。現已證實每秒40,000個樣本的取樣頻率(samplingrate)足以複製音訊訊號。量化(quantization)是指將樣本值取四捨五入至最接近的整數值之過程。例如,如果實數值是17.2,四捨五入後降為17;如果實數值是17.7,四捨五入後增為18。p.64在每一秒鐘之內需要多少樣本才能取得原始訊號的複本?樣本的數量70量化的樣本值需要被編碼(encoding)為位元樣式。每個樣本之位元數有時稱為位元深度(bitdepth)。如果位元深度或每一樣本之位元數為B,每秒鐘之樣本數為S,則每一秒的音訊需要儲存S×B個位元數。這項乘積有時稱為位元率(bitrate)R。例如,如果我們使用每秒40,000個樣本和每一樣本16個位元,則位元率R=40,000×16=640,000位元/秒=640K位元/秒。p.64量化的樣本值需要被編碼(encoding)為位元樣式。71在今日,儲存聲音的主要標準為MP3(MPEG第3層之簡稱)。它使用每秒44,100個樣本和每一樣本16個位元。結果是訊號的位元率為每秒705,600個位元,它是使用捨棄無法被人類耳朵所察覺的資訊之壓縮方法來加以壓縮,稱為失真的壓縮。p.64在今日,儲存聲音的主要標準為MP3(MPEG第3層之723.5儲存圖像圖像儲存在電腦中使用了兩種不同的技術:點掃繪圖法和向量繪圖法。點掃繪圖法點掃繪圖法(rastergraphics)〔或位元映像繪圖法(bitmapgraphics)〕使用於需要儲存類比圖像時,例如相片。相片是由類似音訊資料的類比資料所組成:這表示資料必須加以取樣,然而,取樣在這情況中通常稱為掃瞄(scanning)。所掃瞄的樣本稱為像素(pixel)。在圖像處理中的掃瞄率稱為解析度(resolution)。p.653.5儲存圖像圖像儲存在電腦中使用了兩種不同的技術:點掃73一個像素所使用的位元數量,也就是其色彩深度(colordepth),取決於像素色彩是如何用不同
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 管网工程培训方案
- 沉淀池设备检修规程
- 七氟丙烷气体灭火系统操作和维护保养规程
- 一例垂体瘤患者的护理个案
- 地铁站装修施工方案
- 消防栓保洁维护计划方案
- 工程试验题库及答案
- 2026年石家庄市井陉矿区网格员招聘笔试备考试题及答案解析
- 2026年黑龙江省七台河市网格员招聘考试参考题库及答案解析
- 2025年宿迁市宿豫区网格员招聘考试试题及答案解析
- 行文格式规范培训
- 持续时间模型的估计与检验
- 螺旋改直升气柜施工方案
- 《国际结算(双语)》试卷B及参考答案
- 2025年北京信息职业技术学院单招笔试英语试题库含答案解析(5套100道合辑-单选题)
- 布氏杆菌培训课件
- 住建局执法证考试题库及答案
- 腮腺肿物护理规范
- 成品检验培训课件
- 足球裁判知识课件
- 设备设施危险危害辨识与风险评价表全文完整版
评论
0/150
提交评论