超級難打的拉~~~~
2013年3月28日 星期四
2013年3月25日 星期一
浮點數
*浮點數:
是屬於有理數中某特定子集的數的數字表示,在計算機中用以近似表示任意某個實數。具體來說,這個實數由一個整數或定點數(即尾數)乘以某個基數(計算機中通常是2)的整數次冪得到,這種表示方法類似於基數為10的科學記數法。
浮點計算是指浮點數參與的運算,這種運算通常伴隨著因為無法精確表示而進行的近似或舍入。
一個浮點數a由兩個數m和e來表示:a = m × be。在任意一個這樣的系統中,我們選擇一個基數b(記數系統的基)和精度p(即使用多少位來存儲)。m(即尾數)是形如±d.ddd...ddd的p位數(每一位是一個介於0到b-1之間的整數,包括0和b-1)。如果m的第一位是非0整數,m稱作正規化的。有一些描述使用一個單獨的符號位(s 代表+或者-)來表示正負,這樣m必須是正的。e是指數。
這種設計可以在某個固定長度的存儲空間內表示定點數,但無法表示的更大範圍的數。
*錯誤更正碼 (ECC)
ECC英文全名為Error Checking and Correction Code,中文名稱為錯誤修正碼檢查。
ECC是使用一種特殊電路,利用較複雜的演算法檢查儲存在記憶體中的資料是否一致。ECC通常在每個byte的資料使用3bit來作檢查碼。而且它不只是可以從多個位元中找出其中錯誤,並且可以將錯誤的位元並予以更正。一個有ECC的系統,不僅能容許錯誤,並可以將錯誤更正,使系統得以持續正常操作,不致因錯誤而中斷。ECC稱為「錯誤自動檢查與更正」,這也是一種資料檢查的技術,可以檢查資料是否正確;和Parity Check主要的不同點是在只有一個錯誤的狀況下,ECC具有自動更正的能力。
記憶體要具有檢查與修復的功能,就必須記錄更多的資訊,因此這類的記憶體除了負責資料的記錄之外,還要更多的記憶體來保存核對與更正所需的資訊。以前述的Parity Check為例,每8個位元需要增加1個位元來處理。ECC也是類似的做法,但每家廠商的做法並不完全相同,必須視處理資料的方式而定,例如Intel以64個資料位元搭配8個ECC位元,另外也有以8個資料位元搭配4個ECC位元的做法。
是屬於有理數中某特定子集的數的數字表示,在計算機中用以近似表示任意某個實數。具體來說,這個實數由一個整數或定點數(即尾數)乘以某個基數(計算機中通常是2)的整數次冪得到,這種表示方法類似於基數為10的科學記數法。
浮點計算是指浮點數參與的運算,這種運算通常伴隨著因為無法精確表示而進行的近似或舍入。
一個浮點數a由兩個數m和e來表示:a = m × be。在任意一個這樣的系統中,我們選擇一個基數b(記數系統的基)和精度p(即使用多少位來存儲)。m(即尾數)是形如±d.ddd...ddd的p位數(每一位是一個介於0到b-1之間的整數,包括0和b-1)。如果m的第一位是非0整數,m稱作正規化的。有一些描述使用一個單獨的符號位(s 代表+或者-)來表示正負,這樣m必須是正的。e是指數。
這種設計可以在某個固定長度的存儲空間內表示定點數,但無法表示的更大範圍的數。
*錯誤更正碼 (ECC)
ECC英文全名為Error Checking and Correction Code,中文名稱為錯誤修正碼檢查。
ECC是使用一種特殊電路,利用較複雜的演算法檢查儲存在記憶體中的資料是否一致。ECC通常在每個byte的資料使用3bit來作檢查碼。而且它不只是可以從多個位元中找出其中錯誤,並且可以將錯誤的位元並予以更正。一個有ECC的系統,不僅能容許錯誤,並可以將錯誤更正,使系統得以持續正常操作,不致因錯誤而中斷。ECC稱為「錯誤自動檢查與更正」,這也是一種資料檢查的技術,可以檢查資料是否正確;和Parity Check主要的不同點是在只有一個錯誤的狀況下,ECC具有自動更正的能力。
記憶體要具有檢查與修復的功能,就必須記錄更多的資訊,因此這類的記憶體除了負責資料的記錄之外,還要更多的記憶體來保存核對與更正所需的資訊。以前述的Parity Check為例,每8個位元需要增加1個位元來處理。ECC也是類似的做法,但每家廠商的做法並不完全相同,必須視處理資料的方式而定,例如Intel以64個資料位元搭配8個ECC位元,另外也有以8個資料位元搭配4個ECC位元的做法。
2013年3月11日 星期一
進位轉換
● 二進位轉換成十進位
二進位轉換成十進位,其二進位整數部份右邊第一位的位值為 20、第二位的位值為 21、第三位的位值為 22 …;而小數部份左邊第一位的位值為 2-1、第二位的位值 2-2,只要將每一個二進位數乘於該數的位值,然後相加即可;在此我們以 (11101.11)2 轉換成十進位為例來做示範。
二進位轉換成十進位,其二進位整數部份右邊第一位的位值為 20、第二位的位值為 21、第三位的位值為 22 …;而小數部份左邊第一位的位值為 2-1、第二位的位值 2-2,只要將每一個二進位數乘於該數的位值,然後相加即可;在此我們以 (11101.11)2 轉換成十進位為例來做示範。
● 十進位轉換成二進位
將十進位轉成二進位,可分為兩個部份來處理;在此我們以 (29.75)10 轉換成二進位為例來做示範。
整數部份:
採連續除以 2,並保留『餘數』,直到除法運算後的商數為 0 時停止,然後由最後一次產生的餘數開始,依序由左向右排列,即可完成數部份的轉換。
小數部份:
將小數部份乘以 2,保留所得乘積的整數部份,繼續將乘法運算後所得的小數部份乘以 2,直到所得的小數為 0 時停止;然後由第一次取得的整數開始,依序由左向右排列,即可完成小數部份的轉換。
CH3-2. 八進位與十進位之間的轉換
● 八進位轉換成十進位
八進位的轉換原理和二進位相同,其八進位整數部份右邊第一位的位值為 80、第二位的位值為 81...。而小數部份左邊第一位的位值為 8-1、第二位的位值為 8-2,因此八進位數位轉換成十進位,只要將每一個八進位數乘於該數的位值,然後相加即可求得;在此我們以 (127.3)8 轉換成十進位為例來做示範:
● 十進位轉換成八進位
要將十進位轉成八進位,同樣地可分為兩個部份來處理;在此以 (87.375)10 轉成八進位為例來做示範。
整數部份:
採連續除以 8,並保留『餘數』,直到除法運算後的商數為 0 時停止;然後由最後一次產生餘數開始,依序由左向右排列,即可完成整數部份的轉換。
小數部份:
將小數部份乘以 8,保留所得乘積的『整數部份』,繼續將乘法運算後所得小數部份乘以 8,直到所得的小數為 0 時停止;然後由第一次取得的整數開始、依序由左向右排列,即可完成小數部份的轉換。小數部份的取法,仍是由上往下取。
CH3-3. 十進位與十六進位之間的轉換
● 十六進位轉換成十進位
十六進位的轉換原理和二進位相同,其十六進位整數部份右邊一位的位值為 160、第二位的位值為161...。而小數部份左邊第一位的位值為 16-1、第二位的位值為 16-2,因此十六進位轉換成十進位,只要將每一個十六進位數乘於該數的位值,然後相加即可;在此我們以 (BCE.1E)16 轉換成十進位為例來做示範:
● 十進位轉換成十六進位
十進位轉成十六進位的方式,亦分為兩個部份來處理;在此以 (43969.6719)10 轉成十六進位為例來做示範。
整數部份:
採連續除以 16,並保留『餘數』,直到除法運算後的商數為 0 時停止;然後由最後一次產生的餘數開始,依序由左向右排列,即可完成整數部份的轉換。
小數部份:
將小數部份乘以 16,保留所得乘積的整數部份,繼續將乘法運算後取得的小數乘以 16,直到所得的小數為 0 時停止;然後由第一取得的整數開始,依序由左向右排列,即可完成弓金數部份的轉換。
訂閱:
文章 (Atom)