1. 程式人生 > >計算機中如何表示數字-01機器數與真值

計算機中如何表示數字-01機器數與真值

機器數就是數值在計算機中的表示形式,真值則是它在現實中的實際數值。可以這樣簡單的理解。
因為計算機只能直接識別和處理用0、1兩種狀態的二進位制形式的資料,所以在計算機中無法按人們的日常書寫習慣用正、負符號加絕對值來表示數值,而與數字一樣採用二進位制程式碼0和1來表示正、負號。這樣在計算機中表示帶符號的數值資料時,符號和數均採用了0、1進行了程式碼化。這種採用二進位制表示形式,連同正負符號一起程式碼化的資料,稱為機器數或者機器碼(即,數值在計算機中的二進位制表示形式)。與機器數對應,用正、負符號加絕對值來表示的實際數值稱為真值。
根據約定機器數是否存在符號位,機器數可以分為無符號數和帶符號數。無符號數是指計算機字長的所有二進位制位均表示數值。帶符號數是指機器數分為符號位和數值兩部分,且均採用二進位制表示。一般約定最高位表示符號。
例1-1:10011001作為無符號定點整數時,真值是153;作為帶符號定點整數時,第一位是符號位,1代表負號,二進位制數10011001的真值是-0011001,轉化成十進位制是-25。
對於帶符號數,根據小數點位置固定與否,又可以分為定點數和浮點數。在介紹浮點數之前我們要將注意力完全放在定點數上面,要有點耐心,對定點數的理解程度決定了我們對浮點數的理解程度,因為可以將浮點數看成是對定點數的一種應用,以後就會明白了。好了,先看一看什麼是定點數。
定點數約定所有資料的小數點位置均是相同且固定不變的。計算機中通常使用的定點數有定點小數和定點整數兩類。
定點小數:對於一個長度為n位的機器數,定點小數約定小數點在符號位和最高數值位之間,如下
數符(最高位,佔用1位). 尾數(剩餘n-1位)
小數點只是一個約定,是隱含的,不佔用空間。
定點整數:對於一個長度為n位的機器數,定點整數約定小數點在最低數值位之後,如下
數符(最高位,佔用1位)尾數(剩餘n-1位).
小數點也是隱含的。
例1-2:下的八位二進位制數,我們看看它們所代表的值是多少
定點小數:1.1011001      真值=-0.1011001=-0.6953125
定點整數:11011001       真值=-1011001=-89
真值:127=+1111111       定點整數:01111111
真值:-0.125=-0.001      定點小數:1.0010000
總結上面的內容,機器數的特點是:
1. 符號數值化,0代表正、1代表負。通常將符號的程式碼放在資料的最高位;
2. 小數點是隱藏的,不佔用儲存空間;
3. 每個機器數所佔據的二進位制位數受機器硬體條件的限制,與機器字長有關,超過機器字長的數值要捨去。
4. 因為機器數的長度是由機器的硬體規模規定的,所以機器數表示的數值是不連續的。
 
注:機器內部裝置一次能表示的二進位制位數叫機器的字長,一臺機器的字長是固定的。8位長度的二進位制數稱為一個位元組(Byte),現在機器字長一般都是位元組的整數倍,如字長8位、16位、32位、64位。
在計算機中為了便於數值的運算和處理,對機器數定義了不同的表示方法,其中包括了數的原碼、補碼、反碼和移碼錶示。以後將分別對它們進行介紹