close

二進位和邏輯運算

  在我們認識IP地址之前,有必要認識兩個概念:二進位和邏輯運算。

  雖然兩個概念都不好理解,但如果不知道它們的工作原理,那麼以後我們在討論IP地址和子網的時候,就要靠死記了。不過一旦你知道了其原理,那麼您在任何的IP網路中都不至於迷失,所謂“萬變不離其宗”是也。

 

二進位 (Binary)

  因為電腦只懂得01,當電腦要處理IP運算的時候,最終是以二進位的形式進行的。

  我們人類最習慣的運算規則是十進位,也就是從09為一圈,回到零的時候就進一位數;而我們前面討論的bitbyte則是八進位,即07為一圈,回到零就進一位數;另外還有十六進位,由015為一圈,回到零進一位,但使用數字15很容易和十進位混亂,所以在十六進位裡面,從1015之間分別用英文字母AF代替了,所以我們通常看到的十六進位是從0F的排列。

  二進位的道理也是一樣,從01為一圈,回到01。再看看十七個連續遞增的十進位、二進位和十六進位數字之間的比較,將會是這樣的﹕

 

十進位

 二進位

 十六進位

 

0

0

0

 

1

1

1

 

2

10

2

 

3

11

3

 

4

100

 4

 

5

 101

 5

 

6

 110

 6

 

7

 111

 7

 

8

 1000

 8

 

9

 1001

 9

 

10

 1010

 A

 

11

 1011

 B

 

12

 1100

 C

 

13

 1101

 D

 

14

 1110

 E

 

15

 1111

 F

 

16

 10000

 10

 

  如果想進行二進位和十進位的換算,在列表中找到相應的數字是最簡單的方法,但正如剛才所見,光十六個數字已經有這麼長的列表了,如果要找成千上百個數字可不是件容易的事情。不過,我們在IP地址上面看到的十進位數字最大不會超過255這個數值。可以先將207次方列出來;

 

27

 26

 25

 24

 23

 22

 21

 20

 

128

 64

 32

 16

 8

 4

 2

 1

 

  當我們要將十進位換成二進位的時候,我們只要找到該數字對應的欄位(方法是找到兩個數值相若的欄位,而取其右),在相對的欄位填上1,然後,用餘數繼續尋找下一欄位,再填1,直到再沒餘數為止,最後把其它欄位都填上0就可以了。

 

例如:我們要換算220這個十進位數字到二進位

  我們找到128這欄位是最合適的,(因為128的左邊是256,而220 界乎它們之間,取其右則為 128),那麼我們在128這欄位上面填上1

繼續餘數92:我們找到64這欄位是最合適的,那麼在64這個欄位也填上1

繼續餘數28:我們找到16這欄位是最合適的,那麼在16這個欄位也填上1

繼續餘數12:我們找到8這欄位是最合適的,那麼在8這個欄位也填上1

繼續餘數4:我們找到4這欄位剛好對應,這是最好找到情形了。

那麼在4這個欄位也填上1,因為再沒有余數了,其它都填上0就對了。

 

其結果如下:

 

128

 64

 32

 16

 8

 4

 2

 1

 

1

 1

 0

 1

 1

 1

 0

 0

 

  如果我們要將二進位換算成十進位,利用上面的欄目來做就更加簡單了:只要將二進位數字從右往左的順序依次填入欄位,將凡是被1所對應的數字相加,得出來的和就是十進位數字了。

  當然,這是手工的方法,如果您有二進位的計數器,或是使用Windows的小算盤,來進行換算,更是易如反掌。如果您還不知道怎麼用Windows的小算盤點話,可以依以下步驟進行:

 

1.“開始/程式集/附屬應用程式/小算盤”

 

2.然後拉下“檢視”選單﹐確定“工程型”已被選擇

 

3.然後點選“十進位”﹐輸入數值

 

4.再點選“二進位”就可以獲得換算數值了

 

 

邏輯運算:

  邏輯運算是Microcomputer Architature的必修單元,這裡我們只需了解幾個最基本的運算就可以了,一個是AND一個是OR還有一個是NOT

 

  在二進位的AND的運算中﹐只有參與運算的雙方都相同才會得出相同的結果(為01 ,否則為0也就是只有雙為1的時候,其結果才會是1否則為0其情形是:

0 AND 0 = 0

1 AND 1 = 1

0 AND 1 = 0

  這裡您不難看出:凡是有1參與的AND運算,其結果都會是對方(不管是01);凡是有0參與的AND運算,其結果都會是0

 

  在二進位的OR運算中,只有雙方為0的時候才為0,否則都會是1。其情形是:

0 OR 0 = 0

1 OR 1 = 1

0 OR 1 = 1

  記憶方法:凡是有0參與的OR運算﹐其結果都是對方﹔而只要有1參與的OR運算﹐其結果都會是1

 

  NOT的運算最簡單,只有一方參與,凡是經過NOT運算,其結果都會相反:

NOT 0 = 1

NOT 1 = 0

 

  至於其它一些NANDNOR的運算,只不過將NOTAND、及NOTOR合併在一起運算而已。

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 abundance605 的頭像
    abundance605

    abundance605

    abundance605 發表在 痞客邦 留言(0) 人氣()