微機原理幾個重要的基礎知識

2021-04-07 06:54:38 字數 2695 閱讀 1037

1.機器數和真值

計算機中只能表示0和1兩種數碼,為了表示正數和負數,需要專門選擇一位符號位來表示數的符號,一般選擇最高位,符號位為0的時候表示正數,符號位為1的時候表示負數,也就是說數的符號在計算機中數位化了。

我們把乙個數在計算機中的表示形式稱為機器數,原來實際數的本身的值叫做真值.

機器數的特點:

(1).機器數的正負號數值化;

(2).機器數表示的範圍的大小受到機器字長的限制。

位(bit)的概念: 計算機所能表示的最小資料單位,只有0和1兩種狀態,表示更大的數就要把更多的位組合起來作為乙個整體,每增加一位,所能表示的數就增大一倍.

位元組(byte)的概念:乙個位元組為8位二進位制數,是計算機處理資料的基本單位,微機的儲存器是由乙個乙個儲存單元構成的,每個儲存單元就是乙個位元組,因此儲存器是以位元組為單位編址的,儲存容量的大小也是也位元組數來度量的。

字(word)的概念: 計算機處理資料時,cpu通過資料匯流排一次訪問,加工或傳送的資料。通常由乙個位元組或者多個位元組構成.

字長(word length)的概念: 字的二進位制的位數.字長是計算機一次所能處理的實際位數的長度,所以字長是衡量計算機效能的乙個重要標誌。通常說的計算機是多少多少位的位就是指的字長.

(3).小數點不能直接標出,需要按一定方式約定小數點的位置.

2.符號數的表示方法:

為了解決帶符號的機器數在機器中運算時的問題,引出了機器數x的三種不同的編碼形式。

設x=x(1)  x(2)  x(3) ... x(n-1) ,其中x(i)為一位二進位制數,i=1,2,...,(n-1),

(1).原碼

若x>=0 時, [ x ]原=0 x(1)  x(2) ....x(n-1);

若x<=0時,  [ x ]原=1 x(1)  x(2) ....x(n-1);

根據定義,有

[+0]原=0 0 0 0 0..

[-0 ]原=1 0 0 0 0...

優點:表示簡單,與真值轉換方便;

缺點:運算時需要判斷符號,增加機器的運算時間;

(2)反碼

若x>=0 時, [ x ]反=0 x(1)  x(2) ....x(n-1);

若x<=0時,  [ x ]反=1 x(1)  x(2) ....x(n-1);

根據定義,有

[+0]反=0 0 0 0 0..

[-0 ]反=1 111111..

(3).補碼

若x>=0 時, [ x ]補=0 x(1)  x(2) ....x(n-1);

若x<=0時,  [ x ]補=[ x ]反+1;

根據定義,有

[+0]補=0 0 0 0 0..

[-0 ]補=00 0 0 0...

優點:補碼便於計算機運算;

3.補碼的運算

(1).若x為負數,則[ [x]補 ]補=[ x ]原

(2).=+

該式的語言表達是兩個n位二進位制數之和的補碼 等於兩數補碼之和。

當帶符號兩數採用補碼形式表示時,進行加法運算可以把符號位和數值位一起進行運算(若符號位有進製,則丟掉),結果為兩數之和的補碼形式。

(3).=+

該式表明,求可以用與相加來實現。

這裡的,即對減數進行求負操作,也就是對補碼表示的數(無論是正數還是負數)求得其相應的用補碼表示的負數(如果原來是正數,求負後得負數,原來是負數,求負後得正數)。一般稱已知 求得的過程叫變補或求負。兩個帶符號數採用補碼表示時,減法運算可以通過「變補相 加法」來實現,即 -= +

注:[ -y ]補的求法: 對[ y ]補 "連同符號位在內一起變反加1";

4.補碼運算中的溢位的解決方法

(1).使用雙符號位.

(2).使用進製

5.定點數和浮點數

(1).定點數就是小數點的位置在數中固定不變.

兩種表示方法:定點純小數和定點純整數;

(2).浮點表示法;

n=2p s

其中n表示浮點數或者實數,

s表示n的尾數,用帶符號的定點小數表示,一般用原碼表示;尾數長短規定了數字的有效位數(精度)

2表示n的底數,

p表示指數,稱為階碼,用帶符號的整數,一般用補碼表示;階碼的大小規定了數的範圍;

浮點數的表示形式

階符 階碼 尾符 尾數;

階符表示階碼的符號位,0表示為正,1表示為負;

尾符表示位數的符號位,0表示為正,1表示為負;

規格化的浮點數: 滿足 0.5<= s <1 的限制;

(3) ieee的浮點數表示方法

6.bcd碼

bcd碼:

bcd(binary coded decimal)是用二進位制編碼表示的十進位制數(見表3.3),十進位制數採用0~9十個數字,是人們最常用的。在計算機中,同乙個數可以用兩種bcd格式來表示:①壓縮的bcd碼 ②非壓縮的bcd碼

壓縮的bcd碼:

壓縮的bcd碼用4位二進位制數表示乙個十進位制數字,整個十進位制數用一串bcd碼來表示。例如,十進位制數59表示成壓縮的bcd碼為0101 1001,十進位制數1946表示成壓縮的bcd碼為0001 1001 0100 0110。

非壓縮的bcd碼:

非壓縮的bcd碼用8位二進位制數表示乙個十進位制數字,其中低4位是bcd碼,高4位是0。例如,十進位制數78表示成壓縮的bcd碼為0000 0111 0000 1000。

從鍵盤輸入資料時,計算機接收的是ascii碼,要將ascii碼表示的數轉換成bcd碼是很簡單的,只要把ascii碼的高4位清零即可。

重要基礎知識

陣列。定義陣列 資料型別 陣列名 new 資料型別 陣列長度 eg int arr new int 初始化 1.初始化時,只定義陣列長度 由系統為陣列分配數初始值。2 初始化時指定每個元素的初始值。由系統決定陣列長度 方法。定義格式 修飾符 返回值 方法名 引數型別 引數名 方法體 return 返...

學習基礎知識很重要

我始終認為,對乙個初學者來說,it界的技術風潮是不可以追趕的,而且也沒有能力去追趕。我時常看見自己的ddmm們把課本扔了,去賣些 不菲的諸如 c vb.net 這樣的大部頭,這讓我感到非常痛心。而許多搞不清指標是咋回事的bbs站友眉飛色舞的討論c 裡面可以不用指標等等則讓我覺得好笑。c 就象當年的a...

基礎知識很重要啊

今天發現雲風的 blog 上又添了幾篇新文章,其中一篇 收到一些讀者的來信 中有一些話我深有同感,摘錄下來 這裡再次寫下我從事遊戲程式設計這麼多年來最終沉澱下來的經驗 那就是,任何新的技術都不會是重要的東西。而擁有對程式設計和計算機的本質的了解的基本功,和永遠不消逝的好奇心作為學習新東西的動力才是最...