計算機組成原理與思維導圖(二)
喜歡的話請給個關注或者點個贊再走吧,你們的支持是我創作的動力!
謝謝你們 祝大家早日上岸 點擊收藏,持續更新哦
第二章 數值數據的表示
一、數值數據的編碼表示
1、基本概念
在計算機中,數據常用二進制來表示,也即爲 “0” 和 ”1“,數據有 無符號數 和 帶符號數 之分,其中 帶符號數 根據編碼的不同又分 原碼 補碼 和 反碼 三種表示形式。
2、無符號數和帶符號數
(一) 無符號數
無符號數:所謂無符號數就是一個數的 二進制 數據中都是數值位。相當於數的絕對值 。例如
無符號數直接存儲
(二) 帶符號數
帶符號數:在計算機中,使用的大多都是帶符號數,即一個數的數據中以最高位作爲 符號位,以0代表正數,以1代表 負數,其它位作爲 數值位 。帶符號數的 數值部分 在計算機中常被稱爲 真值。例如
帶符號數需要存儲符號位
3、原碼錶示法
原碼錶示法 是一種最簡單的機器數表示法,其最高位爲符號位。符號位爲0時,表明該數是 正數 ,符號位爲1時,表明該數是 負數 。數值部分即爲 真值相同。
(一) 真值爲純小數
當真值 純小數 X 爲正數【X】原 = X
當真值 純小數 X 爲負數時 【X】原 = 1-X
(二) 真值爲純整數
當真值 純整數 X 爲正數【X】原 = 符號位0 + X真值
當真值 純整數 X 爲負數時 【X】原 = 符號位1 +X真值
當機器數長度爲5位時
4、反碼錶示法
(一) 真值爲純小數
當真值 純小數 X 爲正數【X】反 = X
當真值 純小數 X 爲負數時 【X】反 = 【X】原 最高位+ 【X】原 剩餘數值位取反
(二) 真值爲純整數
當真值 純整數 X 爲正數【X】反 =符號位0 + X真值
當真值 純整數 X 爲負數時 【X】反 = 【X】原 符號位+ 【X】原 剩餘位取反
5、補碼錶示法
補碼 = 反碼末尾 + 1
如:真值 =-0.0011011
原碼 = 1.0011011
反碼 = 1.1100100
補碼 = 1.1100101
總結:當數爲正數是,原碼 = 補碼 = 反碼。
6、思維導圖
二、數值數據的格式表示
格式表示基於編碼表示,形式表示有定點表示和浮點表示,原碼即爲二進制的定點表示。
計算機進行運算時,常需要指出小數點的位置,根據小數點的位置是否固定。在計算機內有兩種數據格式,定點表示和 浮點表示。
1、定點表示法
在定點表示法中約定,所有數據的小數點位置固定不變,通常,把小數固定在有效數位的前面或末尾,這就形成兩類定點數。分別是 定點純小數 和 定點純整數。
(一) 定點純小數
純小數(小數點固定在量值最高位的左邊,即符號位與量值之間)
(二) 定點純整數
純整數(小數點固定在量值最低位的右邊)
2、浮點表示法
普及:最早的計算機只有兩種表示方式:小數定點機和整數定點機。如果計算很大的數值時需要程序員手動調節小數點的位置。另一方面爲了解決編程上的困難,就推出使用 浮點表示法 去表示數值。
概念: 小數點位置 隨 階碼 不同而浮動。
指數 = 階符 + 階碼
尾數 = 數符 + 尾數
(一) 階碼
階碼: 在機器中表示一個浮點數時需要給出指數,這個指數用整數形式表示,這個整數叫做 階碼 ,階碼指明瞭 小數點 在數據中的位置。在大多數計算機中,階碼爲 純整數,常用移碼或 補碼 表示。
(二) 階符
**階符:**階符是當一個數用科學計數法表示時,它的 指數 的符號,指數是正還是負,正負號就是階符。
(三) 數符
數符: 數符就是數字符號的簡稱。
(四) 尾數
尾數: 小數點後面的數字。在大多數計算機中,尾數爲純小數,常用原碼或補碼錶示。
(五) IEEE754標準
IEEE754標準: IEEE754標準 (規定了浮點數的表示格式,運算規則等)
一: 基數 2是固定常數,故可不表示出來
二: 尾數 用 原碼
三: 指數 用 移碼(便於對階和比較,不需要判斷符號位)
四: 指數的 階符 被隱含中移碼中故可不表示出來,正因爲如此,可以理解爲 階符隱藏,指數 = 階碼。 但又按照ieee754的標準,即指數 = 階碼 = 真值e + 偏移量。
五: 浮點數 的規格化表示: 當 尾數的值不爲0 時,尾數域的最高有效位應爲1(類似於0.011強制要求用1.1∗2−21.1∗2−2表示),又因爲最高位固定爲1,即尾數域表示的值是1.M,故最高位的1也不予存儲.要除去E用全0和全1表示零和無窮大的情況,如本來是0-255則變成1~254。
PS:這裏的 移碼 = 階碼 + 偏移量
六: 單精度(32位)位浮點數
真值e爲二進制浮點數的表示形式的指數。
七:雙精度(64位)位浮點數
八: 表示範圍
32位二進制轉8位的十六進制使用8421法。同樣地8位十六進制轉32位二進制也是使用8421反推.
3、思維導圖
三、非數值數據的表示
1、基本概念
非數值數據,又稱 字符數據 ,通常指 字符 、 字符串 、圖形符號等數據。它們不用來表達 數值大小,一般情況下不進行 運算 .
2、字符和字符串的表示
(一) ASCII字符編碼
由於計算機只能識別和處理 二進制代碼 ,所以字符必須按照一定的規則用二進制編碼去表示。字符編碼的方式有很多種,現在使用最廣泛的就是 美國國家信息交換標準字符碼(American Standard Code for Information Interchange),也就是ASCII。
常見的ASCII碼用 7 位二進制表示一個字符,它包括10個十進制數字(0-9),26個英文字母的大小寫。
3、漢字的表示
(一) 漢字國標碼
漢字國標碼又稱 漢字交換碼 ,主要用於處理漢字信息處理系統或者通信系統之間交換信息用。最新的漢字國標碼標準爲 漢字國標碼(GB2312-80),把漢字按照 拼音順序 分成 一級常用漢字,二級 “ 次” 常用漢字 兩個等級。
(二) 漢字區位碼
漢字國標碼 = 十六進制 漢字區位碼 + 2020H
(三) 漢字機內碼
漢字機內碼 = 漢字國標碼 + 8080H = 漢字區位碼 +2020H +8080H
4、 十進制數與數串的表示
(一) 十進制的編碼
二進制是計算機最適合的數據表示方式,通常把 十進制數 轉換爲一組 二進制數 來表示。以4位二進制數表示1位十進制。
① 8421碼
不允許出現1010 - 1111
② 2421碼
同時也是 對 9 的自補碼 ,如3的2421碼是 0011,3對9的補數是6,而6的2421碼即爲3的取反。即爲1100。
不允許出現0101 - 1010
③ 餘 3 碼
由於它的每個字符編碼比相應的8421碼多3,故稱爲餘三碼。
同時也是 對 9 的自補碼
不允許 0000-0010,1101-1111
④ 格雷碼( Gray 碼)
(二) 十進制的存儲和處理 - 數串
十進制數在計算機內是以 數串 的形式進行存儲和處理的,十進制數串的長度是可變。
十進制在計算機內有兩種表示形式,非壓縮的十進制數 和 壓縮的十進制數。
① 非壓縮的十進制數串
非壓縮十進制數據表示,一個字節可存放一位BCD碼錶示的十進制數,即一個字節存儲一位十進制數。其中高4位可任意,低4位爲相應十進制數字的BCD碼。
如十進制數字 6 ASCII碼爲 0011 0110 非壓縮十進制數爲 0000 0110 只取低四位。最高4位可任意
② 壓縮的十進制數串
一個字節存儲兩個十進制數, 其中+爲C -爲D 。
如+123 就需要兩個字節才能存儲,1和2需要一個字節,+和3需要一個字節。(符號位佔半個字節)
所以按照8421的規則,+123按順序符號位寫在最後表示爲
1 2 3 C 即爲 0001 0010 0011 1100。
又如-2648,2、6爲一個字節,4、8爲一個字節,-爲半個字節,所以需要補0湊多半個字節,共3個字節。
所以按照8421的規則,-2648按順序符號位加補位寫在最後表示爲 0 2 6 4 8 D 即爲 0000 0010 0110 0010 1000 1101
③ 總結
第一步:按照字節推出數串長度。
第二步 按照 8421碼 的規則,寫出每個十進制數的8421碼。
第三步:按照符號位在後,補位在前的規則將數完整寫出來。