1.3計算機中的數與編碼
數是計算機處理的對象。數有大小和正負之分,還有不同的進位計數製。因此,了解進位計數製和計算機中數據的表示方法是非常重要的。
一、不同進位計數製及其特點任何進位計數製都有三個要素:①數碼:組成某進位基數製的所有數碼值;②基數:某種進位計數製所用數碼的個數;③運算規則:指進行加減乘除時的運算規則。
1.十進製十進製數的特點:
①十個數碼:0、1、2、3、……、9。
②運算規則:逢十進一,借一當十。
③基數:l0。
一個十進製數中,同一個數碼在不同的位置所代表的數值是不同的,如十進製數242.2中的三個2分別代表不同的數值200、2和0.2,我們把該數按基數展開:
(242.2)10=2X102+4×101+2X100+2X10—1
上式中的10就是十進製的基數;而l02、l01、l00、l0~、……等稱為各數碼的位值(又稱權)。
2.二進製
二進製的特點為:
①2個數碼:0和1。
②運算規則:逢二進一,借一當二。
③基數:2。
同理,二進製數中同一個數碼在不同的位置所代表的數值也是不同的。二進製數1011.01按基數展開的展開式為:
(1011.01),=1×23+0×22+1×21+1×20+0×2—1+1×2—2
3.十六進製
十六進製的特點為:
①l6個數碼:0、1、2、……、9、A、B、C、D、E、F。
②運算規則:逢十六進一,借一當十六。
③基數:l6。
注意,在十六進製的十六個數碼中A、B、C、D、E、F六個數碼,分別代表十進製中的10、11、12、13、14、15,這是國際上通用的表示法。
十六進製數34EF.5D按基數展開的展開式為:
(34EF.5D)16=3×163+4×l62+14×161+15×160+5×16—1+13×16—2
二、計算機中為什麼采用二進製數
人們習慣使用十進製數,而計算機中采用二進製數表示信息,主要原因如下:
(1)易於物理實現:計算機是由電子元件組成的,電子元件通常隻有髓個穩定狀態。例如開關的接通與斷開,電壓電平的高與低等。這兩種狀態正好用來表示二進製數中的兩個數碼0和1。若要表示十進製數中的十個數碼,組成計算機的邏輯電路將非常複雜。
(2)運算簡單:數學推導證明,對任意的r進製的算術求和、求積規則各有r(r+1)/2種。如果采用十進製,就有55種求和與求積的運算規則;而二進製僅有三種,因而簡化了運算器等物理器件的設計。
(3)可靠性高:用兩種穩定狀態表示二進製數的兩個數碼,數字傳輸和處理不容易出錯,因而電路更加可靠。
(4)通用性強:二進製不僅能表示數值型數據,而且還能表示各種非數值型數據。如二進製的兩個數碼0和1正好與兩個邏輯值“真”與“假”相對應,從而為計算機實現邏輯運算和邏輯判斷提供了方便。
三、任意的r進製數與十進製數的相互轉換
1.把r進製數轉換成十進製數
轉換方法:把r進製數按基數r展開,然後按十進製數相加,得到的和即是轉換成的十進製數。例如:
(1011.O1),=1×23+0×22+1X21+1×20+0X2—1+1×2—2
=8+0+2+1+0+0.25=(11.25)10
(34EF.5),^=3×163+4×162+14×161+15×160+5X16—1
12288+1024+224+15+0.3125=(13551.3125)10
2.把十進製數轉挾成r進製數
十進製數轉換成r進製數,整數部分和小數部分要分開轉換,然後再連接起來。
(1)十進製整數的轉換方法:除以r取餘數,一直除到商為零為止。最先得到的餘數是r進製的最低位,最後得到的餘數是r進製的最高位。
(2)十進製小數的轉換方法:乘以r取整數,一直乘到小數部分為零或精確到某一位為止。最先得到的整數是r進製小數的最高位,最後得到的整數是進製小數的最低位。
四、二進製與十六進製之間的轉換
因二進製的基數是2,十六進製的基數是16,而24=16,所以一位的十六進製數對應四位的二進製數。
1.二進製數轉換成十六進製數
以小數點為基準,整數部分從右向左,每四位一組,最高位不夠四位,添0補足四位;小數部分從左向右,每四位一組,最低位不夠四位,添0補足四位。然後按照表l-1中二進製與十六進製數的對應關係,即可把二進製數轉換成十六進製數。
2.十六進製數轉換成二進製數
把十六進製數中的每位數碼轉換成與之對應的四位二進製數,然後把無意義的前0與後0去掉,即可得到轉換成的二進製數。