知識概覽1:
計算機中的資訊不僅有資料,還有字元、命令,其中資料還有大與小、正數與負數之分。計算機是如何用「0」或「1」,來表示這些資訊的呢?
1.計算機中數的表示形式
在計算機中,只有數碼1和0兩種不同的狀態,對於乙個數的正、負號,兩種不同狀態,約定正數的符號用0表示,負數的符號用1表示,將符號位放在數的最左邊。例如:n1=+1011,n2=-1011。由於mcs—51為8位微控制器,即資訊是以8位為單位進行處理的,且每個存貯單元只能存貯—個8位的二進位制數,稱為乙個位元組,如果用乙個位元組(即8位二進位制數)來表示上述兩個符號數,它們在微控制器中可分別表示為:00001011和10001011,其中最高位為符號值,其餘位為數值位。
最高位為0表示是正數,最高位為1表示是負數。這種計算機用來表示數的形式叫機器數。而把對應於該機器數的算術值叫真值。
值得注意的是:機器數和真值的物件導向不同,機器數面向計算機,真值面向使用者,機器數不同於真值。但真值可以用機器數來表示。
機器數是計算機中表示數的基本方法,機器數通常有原碼、反碼和補碼三種形式。
(1)原碼表示方法
用8位二進位制數表示數的原碼時,最高位為數的符號位,其餘7位為數值位。
例如:真值為+120和-120的原碼形式
[+120]原=01111000
[-120]原=11111000
對於零,可以認為它是正零,也可以認為它是負零,所以零的原碼有兩種表示形式:
[+0]原=00000000
[-0]原=10000000
8位二進位制數原碼表示範圍為:11111111~01111111,即-127~+127。
(2)反碼表示方法
在反碼表示方法中,正數的反碼與原碼相同,負數的反碼由它對應原碼除符號位之外,其餘各位按位取反得到。例如:
[+120]反=[+120]原=01111000
[-120]反=10000111
零的反碼有兩種表示方式,即:
[+0]反=00000000
[-0]反=11111111
8位二進位制數反碼表示範圍為:10000000~01111111,即-127~+127。
(3)補碼表示方法
補碼的概念:先以鐘錶對時為例,假設現在的標準時間為5點整,而有乙隻表卻已是7點,為了校準時間,可以採用兩種方法:一是將時針退2格,即7-2=5;一是將時針向前撥10格,即7+10=12(自動丟失)+5,都能對準到5點。可見,減2和加10是等價的,我們把(+10)稱為(-2)對12的補碼,12為模,當數值大於模12時可以丟棄12。
在字長為8位的二進位制數字系統中,模為28=256,先看看下例:
01000000 64 01000000 64
+11110110 +246 -00001010 -10
1 00110110 54 1 00l10110 54
由此可見,在字長為8位情況下(64-10)與(64+246)的結果是相同的,所以(-10)和246互為補數。在補 碼表示方法中,正數的補碼與原碼相同,負數的補碼由它對應原碼除符號位之外,其餘各位按位取反且末位加一得到。例如:
[+120]補=[+120]原=01111000
現在我們看一看(-10)的補碼11110110怎樣求得。
正數的補碼表示方法與原碼相同
負數的補碼求法:
1)利用反碼求補碼:反碼加1。如:
[-10]原=100010l0
[-10]反=11110101
[-10]補=11110110
2)利用原碼求補碼(直接求補法):找出原碼中數值位的最右邊的乙個「1」,將這個「1」以及這個「1」右邊各位保持不變,而將這個「1」左邊各位按位取反,但符號位不變。如:
[-10]原=100010l0
[-10]補=11110110
採用補碼表示數,可將減法運算轉換成加法運算。在補碼表示法中,零的補碼只有一種表示法,即 [+0]補=[-0]補=00000000。對於八位二進位制數而言,補碼能表示的數的範圍為-128~+127。
【例1-10】已知x=+1010b,y=-1010b,寫出它們的原碼、反碼和補碼形式。
[+1010b]原=00001010b [-1010b]原=10001010b
[+1010b]反=00001010b [-1010b]反=11110101b
[+1010b]補=00001010b [-1010b]補=11110110b
這些都很簡單,主要是考我們的細心程度,這兩天體會到學習了自考看軟考是輕鬆了,但是不得掉以輕心,自考考的是側重於記憶性的知識點多一些,而軟考靠的是對問題的認識、分析、理解。對問題的認識我們要從根本上學習、理解,我們本該追本溯源。
對今後的學習同樣也是,多問些為什麼?往往能收到更多意想不到的說服自己的知識,那種感覺就是心裡很舒服、很爽、也帶勁。
軟考之路(三) 組成原理
知識概覽1 計算機中的資訊不僅有資料。還有字元 命令,當中資料還有大與小 正數與負數之分。計算機是怎樣用 0 或 1 來表示這些資訊的呢?1 計算機中數的表示形式 在計算機中,僅僅有數碼1和0兩種不同的狀態,對於乙個數的正 負號,兩種不同狀態,約定正數的符號用0表示,負數的符號用1表示,將符號位放在...
軟考複習之路 組成原理
計算機系統的基礎知識應該是作為乙個程式設計人員必備的一門課程,只有了解了計算機的組成,程式在計算 機中的儲存狀態,運算等基本內容,我們才能繼續對計算機有更深層次的認識,更容易學習與上手。比如說要 想學習作業系統,編譯原理這些內容都是以組成原理為基礎的。計算機系統主要分為幾部分 校驗碼 校驗碼是為了確...
軟考 之 計算機組成原理
軟考準備了不短的時間了,對於計算機組成原理這部分的感覺仍然是亂,摘不出頭緒來,接下來就來導導。首先從整體上來看計算機的整體的體系,如下圖 其實這麼看著也挺簡單了的是吧。一句話這知識皮毛而已。接下來我們看看我們平時操作電腦的乙個軟硬體協作的過程,如下圖 這個看似簡單的流程軟硬體的互動其實都是通過對 0...