二進制只使用數字 0 和 1 ,其中每個數字對應於一位( 二進 制位)。 通常,我們將每 4位或 8 位作為一組,分別稱它們為半字節(舊bble) 和字節。 我們感興趣的是二進制值對應的十進制值一一十進制以 10 為基數,我們從幼兒園起就開始使用 它了。二進制位接從右向左的順序排列,每向左移動一位,位值就翻一倍。
這意味着如果某一位的取值為 1 ,則計算半字節或字節對應的十進制值時,應將其位值與其他所 有取值為 1 的位值相加。如果為 0,則不考慮。
下面更詳細地闡述這一點。 如果半字節的每一位都為 1 ,則將 8、 4、 2 和 1 相加,結果為 15一一 半字節的最大取值。 假設半字節的取值是 1010,即位值為 8 和 2對應的位為 1 ,則對應的十進制值為 10。 如果半字節的取值為 0110,則對應的十進制值為 6,因為位值 4 和 2對應的位為 1。
然而,字節的最大取值比 15 要大得多,因為如果字節中每位都為 1 ,則其取值如下(別忘了 , 字 節包含 8 位):
11111111
此時若要計算字節對應的十進制值,可將所有取值為 1 的位的位值相加,如下所示:
128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255
這是字節的最大可能取值。
二進制數還可對應眾多其他的十進制值,下面來看一些例子。假設二進制數取值如下:
10010110
哪些位的取值為 1 呢?答案是位值為 128、 16、 4 和 2 的位,因此只需將這些位值相加: 128+ 16+4+ 2= 150。再舉個例子,假設二進制數取值如下:
01101100
哪些位的取值為 1 呢?答案是位值為 64、 32、 8 和 4 的位,因此只需將這些位值相加: 64+32+8+4= 108。再者,如果二進制數取值如下:
11101000
哪些位的取值為 1 呢?答案是位值為 128、 64、 32和 8 的位,因此只需將這些位值相加: 128+64+32+ 8=232。
十六進制地址與二進制和十進制完全不同,我們通過讀取半字節將二進制轉換為十六進制。通過 半字節,我們可輕松地將二進制轉換成十六進制。首先需要明白的是,十六進制只能使用數字 0-9, 而不能使用 10、 11 、 12 等(因為它們是二位數),因此使用 A、 B、 C、 D、 E和 F分別表示 10、 11、 12、 13 、 14 和 15。
注意:十進制使用 10 個數字,十六進制又使用了字母表的前 6 個字母,即 A-F。
前10個十六進制數字 (0-9 )與相應的十進制值相同,你注意到了嗎?因此,這些值轉換起來非 常容易。
假設有十六進制數 Ox6A (有時候,思科喜歡在字符前添加 Ox, 讓你知道它們是十六進制值。 Ox 並沒有其他特殊含義),它對應的二進制值和十進制值是多少呢?你只需記住,每個十六進制字符相 當於半字節,而兩個十六進制字符相當於一字節。要計算該十六進制數對應的二進制值,可將這兩個 字符分別轉換為半字節,然后將它們合並為一個字節:6=0110,而 A= 1010,因此整個字節為 01101010。
要從二進制轉換為十六進制,只需將字節划分為半字節,下面具體解釋這→點。
假設有二進制數 01010101 。首先將其划分為半字節 0101 和 0101 ,這些半字節的值都是 5,因為 取值為 1 的位對應的位值分別是 1 和 4。因此,其十六進制表示為 Ox55。要將二進制數 01010101 轉換 為十進制數,方法為 64 + 16 + 4 + 1 = 85。
下面是另一個二進制數:
11001100
其中 1100=12, 1100= 12,因此它對應的十六進制數為 cc。將其轉換為十進制時,答案為 128+64+ 8 +4 =2040
下面再介紹一個例子,假設有如下二進制數:
10110101
它對應的十六進制數為 OxB5 ,因為 1011 對應的十六進制值為 B, 0101 對應的十六進制值為 5。將其 轉換為十進制時,結果為 128+32+ 16+4+ 1 = 181。