計算機組成原理 二進位制

2021-10-08 13:48:05 字數 3467 閱讀 7015

一、二進位制概念

基於計算機內部組成原理,在記憶體中位元組是可定址的最小單位,每個1位元組由8個0或1的二進位制位組成(有時二進位制位也稱為位元,英文bit),最左邊的二進位制位稱為最高位,最右邊的二進位制位稱為最低位。如下圖。

了解上面一些概念之後,咋們來討論乙個問題。

1個位元組最大的表示範圍是多少?要回答這個問題需要引入兩個概念分別是無符號數和有符號數。

二、無符號數

三、有符號數

為了方便我們人閱讀二進位制,我用引入乙個原碼的概念來表示二進位制中的正負數。上面85和-85的數值表示如下

數值二進位制

850101 0101

-851101 0101

弄明白了原碼之後,我們就要在計算機進行運算,先弄個最簡單的相加運算。我們希望(+85)和(-85)相加是0,用二進位制表示就是

0101 0101

+ 1101 0101

-------------

0010 1010

0010 1010實際上是(41),這不是我們期望的結果。

3.1、為了解決「正負相加等於0」的問題,在「原碼」的基礎上,人們又引入反碼的概念。

「反碼」表示方式用來處理負數的反碼,符號位置不變,其餘位置相反

例如原碼1101 0101,反碼就是1010 1010。再進行一次相加運算。

0101 0101

+ 1010 1010

------------------

1111 1111

剛好反碼1111 1111就是(-0)。看到這裡還有個問題,我們的現實世界中,0是沒有正負數之分的。

2.為了解決計算機中+0和-0的問題。人們又引入補碼的概念。

"補碼"表示,正數的補碼其二進位制本身。負數的補碼在反碼的基礎上+1。

因此1111 1111+1變成了1 0000 0000,去掉高位就是0000 0000。這樣就解決了+0和-0同時存在的問題

小結數值

原碼反碼

補碼85

0101 0101

0101 0101

0101 0101

-851101 0101

1010 1010

1010 1011

1.正數(無符號數)其原碼、反碼、補碼相同

2.經過上面幾個概念之後,要記住一點,在計算機系統中,數值一律用補碼來表示和儲存,並且1個位元組最多能表示2

82^8

28也就是256個數值。

3.乙個位元組無符號數範圍:0000000011111111(0255)總共有256個數值。

4.乙個位元組二進位制位有符號數表示範圍:1000 0000~0111 1111(即-128~127)。

這裡有兩個疑問

1、為什麼最小負數是-128而不是-127?

正數的最大值應該是 0111 1111 127 (補碼:再次提示計算機的資料都是以補碼形式)

0111 1110 126

0111 1101 125

…0000 0001 1

0000 0000 0 (為了方便理解 我把0看成正數)

由上可知補碼從0000 0000 到 0111 1111 中存在128個數字

負數從大到小最大值是-1對應的

原碼 1000 0001

反碼 1111 1110

補碼 1111 1111

補碼從大到小順序排列如

-1 1111 1111

-2 1111 1110

-3 1111 1101

…-127 1000 0001

-128 1000 0000

正數和0一共128個 負數128個 剛好滿足2

82^8

28=256個數

具體補碼表示如下圖

+----------------------------+

| 255 -1 11111111 |

| 254 -2 11111110 |

| 253 -3 11111101 |

| 252 -4 11111100 |

| 251 -5 11111011 |

| 246 -10 11110110 |

| 236 -20 11101100 |

| 226 -30 11100010 |

| 216 -40 11011000 |

| 206 -50 11001110 |

| 196 -60 11000100 |

| 186 -70 10111010 |

| 156 -100 10011100 |

| 129 -127 10000001 |

| 128 -128 10000000 |

| 127 127 01111111 |

| 100 100 01100100 |

| 70 70 01000110 |

| 60 60 00111100 |

| 50 50 00110010 |

| 40 40 00101000 |

| 30 30 00011110 |

| 20 20 00010100 |

| 10 10 00001010 |

| 5 5 00000101 |

| 4 4 00000100 |

| 3 3 00000011 |

| 2 2 00000010 |

| 1 1 00000001 |

| 0 0 00000000 |

+----------------------------+

2、為什麼補碼1000 0000表示-128

要解釋這個問題,先思考-128的原碼怎麼表示(先不要糾結乙個位元組等於8位元)是不是11000 0000,最左邊的1是符號位表示負數,總共用9個位元來表示-128。

我們把11000 0000轉成反碼就是10111 1111。

再將10111 1111轉成補碼(即+1)就是11000 0000。這個時候考慮乙個位元組有8位元,11000 0000會導致資料溢位,因此計算機內部抹掉最高位1,用1000 0000表示-128。

計算機組成原理二

1.指令的格式 每條指令等長,均為2個位元組 第乙個位元組的高四位是操作碼,低四位作為表示暫存器號 第二個位元組是儲存單元位址 2.計算機啟動過程 1 計算機啟動後,從bios晶元中取出指令,進行執行,這段程式就是在實模式在進行的。2 設定cpu中pe 1,作業系統進入保護模式,如果任務需要會進入虛...

計算機組成原理二

計算機的基本組成 一.馮諾依曼計算機的特點 儲存程式通用方案 edvac 1.特點1 五大部分組成 運算器 控制器 儲存器 輸入裝置 輸出裝置 2指令和資料以同等地位存於儲存器 可按定址訪問 3.指令和資料都用二進位制表示 4.指令由操作碼和位址碼組成。操作碼指指令做什麼操作,位址碼指運算元所在的位...

計算機組成原理cu 計算機組成原理 計算機概論

現代計算機樣式千奇百怪,常見的有我們的筆記本,台式電腦,也有各種伺服器 手機 攝像頭等都屬於計算機範疇。計算機包含我們看得見摸得著的計算機實體,稱為計算機硬體,如cpu 記憶體 各種掛接裝置等 還有我們看不見摸不著的軟體,它支援著硬體按照我們的預想在操作,包括系統軟體和應用軟體 計算機硬體樣式千奇百...