八進制

八進制

八進制,Octal,縮寫OCT或O,一種以8為基數的計數法,採用0,1,2,3,4,5,6,7八個數字,逢八進1。一些程式語言中常常以數字0開始表明該數字是八進制。八進制的數和二進制數可以按位對應(八進制一位對應二進制三位),因此常套用在計算機語言中。

簡介

Octal,縮寫OCT或O,一種以8為基數的計數法,採用0,1,2,3,4,5,6,7八個數字,逢八進1。一些程式語言中常常以數字0開始表明該數字是八進制。八進制的數和二進制數可以按位對應(八進制一位對應二進制三位),因此常套用在計算機語言中。

八進制(基數為8)表示法在計算機系統中很常見,因此,我們有時能看到人們使用八進制表示法。由於十六進制一位可以對應4位二進制數字,用十六進制來表示二進制較為方便。因此,八進制的套用不如十六進制。有一些程式設計語言提供了使用八進制符號來表示數字的能力,而且還是有一些比較古老的Unix套用在使用八進制。

轉換

二進制與八進制的互相轉換和二進制與十六進制的轉換類似,區別在於需要操作的是三位一組而不是四位。表2-2列出了二進制與八進制的等效表示。

為了把八進制數換算為二進制,將每一個八進制數字替換成表2-2中對應的三位。例如,八進制123q換算成二進制的結果就是%0_0101_0011:

1 2 3
001 010 011

表2-2 二進制/八進制換算表

二進制 八進制
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7

為了將一個二進制數換算為八進制,只需將二進制串劃分成每三個位一組(如果需要的話,在前面補零),然後查表2-2,將三位一組的位串替換為相應的八進制數字即可。

如果需要將八進制數換算為十六進制,只需將八進制數換算為二進制,然後再換算為十六進制即可。

八進制化為十進制:

例:將八進制數12.6轉換成十進制數

(12.6)8 = 1×8^1 + 2×8^0 + 6×8^-1 = (10.75)10

八進制化為二進制:

規則:按照順序,每1位八進制數改寫成等值的3位二進制數,次序不變。

例: (17.36)8 = (001 111 .011 110)2 = (1111.01111)2

八進制化為十六進制

先將八進制化為二進制,再將二進制化為十六進制。

例:(712)8 = (1110 0101 0)2 = (1CA)16

轉換為八進制

二進制化為八進制:

整數部份從最低有效位開始,以3位一組,最高有效位不足3位時以0補齊,每一組均可轉換成一個八進制的值,轉換完畢就是八進制的整數。

小數部份從最高有效位開始,以3位一組,最低有效位不足3位時以0補齊,每一組均可轉換成一個八進制的值,轉換完畢就是八進制的小數。

例:(11001111.01111)2 = (011 001 111.011 110)2 = (317.36)8

十六進制化為八進制:

先用1化4方法,將十六進制化為二進制;再用3並1方法,將二進制化為8制。

例: (1CA)16 = (111001010)2 = (712)8

說明:小數點前的高位零和小數點後的低位零可以去除。

十進制化八進制

方法1:採用除8取余法。

例:將十進制數115轉化為八進制數

8| 115…… 3

8| 14 …… 6

8| 1 …… 1

結果:(115)10 = (163)8

方法2:先採用十進制化二進制的方法,再將二進制數化為八進制數

例:(115)10 = (1110011)2 = (163)8

笑話

Oct(Octal number) 31 == Dec(Decimal number) 25

在西方國家,oct(31)即10月31日是萬聖節,dec(25)即12月25日是聖誕節,因此有一個笑話:程式設計師分不清聖誕節和萬聖節。

相關詞條

相關搜尋

熱門詞條

聯絡我們