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位清零即可。