Bước tới nội dung

Hệ bát phân

Bách khoa toàn thư mở Wikipedia

Hệ bát phân hay còn gọi là hệ cơ số 8 (Octal Number System).

Hệ bát phân gồm: 0, 1, 2, 3, 4, 5, 6, 7. Giá trị gia tăng là các lũy thừa của 8.

Bảng xem hệ đổi bát phân sang nhị phân, thập phân và thập lục phân

[sửa | sửa mã nguồn]
0hex = 0dec = 0oct 0 0 0 0
1hex = 1dec = 1oct 0 0 0 1
2hex = 2dec = 2oct 0 0 1 0
3hex = 3dec = 3oct 0 0 1 1
4hex = 4dec = 4oct 0 1 0 0
5hex = 5dec = 5oct 0 1 0 1
6hex = 6dec = 6oct 0 1 1 0
7hex = 7dec = 7oct 0 1 1 1
8hex = 8dec = 10oct 1 0 0 0
9hex = 9dec = 11oct 1 0 0 1
Ahex = 10dec = 12oct 1 0 1 0
Bhex = 11dec = 13oct 1 0 1 1
Chex = 12dec = 14oct 1 1 0 0
Dhex = 13dec = 15oct 1 1 0 1
Ehex = 14dec = 16oct 1 1 1 0
Fhex = 15dec = 17oct 1 1 1 1

Trong bảng trên, bên phải là hệ nhị phân. Các số 0 được tô màu trắng, và các số 1 được tô màu đỏ.

Bát phân đơn giản hóa

[sửa | sửa mã nguồn]

Để đơn giản hoá hệ bát phân, chúng ta có thể nghĩ như sau: Chúng ta dùng hệ thập phân. Điều này có nghĩa là các giá trị của mỗi hàng số (hàng đơn vị, hàng chục v.v..) chỉ được biểu đạt bởi một trong 10 ký tự mà thôi: 0, 1, 2, 3, 4, 5, 6, 7, 8, hoặc 9. Chúng ta ai cũng thông thuộc với những ký tự này và cách dùng của chúng trong hệ thập phân. Khi chúng ta đếm các giá trị, chúng ta bắt đầu bằng ký tự 0, luân chuyển nó đến ký tự 9. Chúng ta gọi nó là "một hàng".

Với những con số ở trên trong một hàng, chúng ta có thể liên tưởng đến vấn đáp về tính nhân. Số 5 có thể hiểu là 5 × 100 (100=1) tương đương với 5 x 1, vì bất cứ một số nào có mũ 0 cũng đều bằng 1 (tất nhiên là loại trừ số 0 ra). Khi khai triển sang bên trái một vị trí, chúng ta nâng số mũ của 10 lên một giá trị, vì vậy để biểu đạt 50, chúng ta dùng phương pháp tương tự và số này có thể được viết như 5 x 101, hoặc đơn giản hơn 5 x 10.

Khi chúng ta đã dùng hết các ký tự trong hệ thập phân, chúng ta chuyển vị trí sang bên trái và bắt đầu với số 1, đại diện cho hàng chục. Tiếp đó chúng ta hoàn trả hàng "đơn vị" về ký tự đầu tiên, số không.

Hệ bát phân có gốc 8, cũng hoạt động trên cùng một nguyên lý như hệ thập phân, song chỉ dùng 2 ký tự để đại diện cho hai giá trị: 0 và 1. Chúng ta bắt đầu bằng hàng "đơn vị", đặt số 0 trước tiên, rồi nâng cấp lên số 1. Khi đã lên đến số 1, chúng ta không còn ký tự nào nữa để tiếp tục biểu đạt những giá trị cao hơn, do vậy chúng ta phải đặt số 1 ở "hàng hai" (tương tự như hàng chục trong hệ thập phân), vì chúng ta không có ký tự "2" trong hệ nhị phân để biểu đạt giá trị này như chúng ta có thể làm được trong hệ thập phân.

Trong hệ bát phân, giá trị 10 có thể biểu đạt bằng hình thức tương tự như (1 x 81) + (0 x 80). Giá trị này bằng 2 trong hệ thập phân. Bát phân sang thập phân tương đồng:

Để quan sát công thức biến chuyển cụ thể từ hệ này sang hệ kia, xin xem thêm phần Phương pháp chuyển hệ dưới đây.

Ngược lại, chúng ta có thể suy nghĩ theo một cách khác. Khi chúng ta đã dùng hết các ký tự trong hệ thống số, chẳng hạn dãy số "77777", chúng ta cộng thêm "1" vào phía bên trái và hoàn trả tất cả các con số ở vị trí bên phải về số "0", tạo thành 100000. Phương thức này cũng có thể dùng được cho các ký tự ở giữa dãy số. Chẳng hạn với dãy số 100777. Nếu chúng ta cộng thêm 1 vào số này, chúng ta phải chuyển vị trí về bên trái một vị trí bên cạnh các con số 1 trùng lặp (vị trí thứ tư), nâng cấp vị trí này từ số 0 lên số 1, rồi hoàn trả tất cả các con số 1 bên tay phải về vị trí số không, tạo thành 101000.[1]

Các phép tính dùng hệ bát phân

[sửa | sửa mã nguồn]

Phép tính dùng trong hệ bát phân cũng tương tự như các phép tính được áp dụng trong các hệ khác. Tính cộng, tính trừ, tính nhân và tính chia cũng có thể được áp dụng với các giá trị số bát phân.

Tính cộng

[sửa | sửa mã nguồn]

Phép cộng trong hệ bát phân cũng giống như hệ thập phân và các hệ khác.

Cộng hai số "4" với nhau tạo nên giá trị "10", tương đương với giá trị 2 trong hệ thập phân. Điều này xảy ra tương tự trong hệ thập phân khi hai số đơn vị được cộng vào với nhau. Nếu kết quả bằng hoặc cao hơn giá trị gốc (10), giá trị của con số ở hàng tiếp theo được nâng lên:

5 + 5 = 10
7 + 9 = 16

Hiện tượng này được gọi là "nhớ" hoặc "mang sang", trong hầu hết các hệ thống số dùng để tính, đếm. Khi tổng số vượt lên trên gốc của hệ số, phương thức làm là "nhớ" một sang vị trí bên trái, thêm một hàng. Phương thức "nhớ" cũng hoạt động tương tự trong hệ bát phân:

   2 3 4   (nhớ)
+  3 6 2
  -------------
=  6 1 6

Trong ví dụ trên, hai số được cộng với nhau: 2348 (156 thập phân) và 3628 (242 thập phân). Hàng trên cùng biểu đạt những số nhớ, hoặc mang sang. Bắt đầu bằng cột cuối cùng bên phải, 4 + 2 = 68. Hàng thứ hai từ cột cuối cùng bên phải được cộng tiếp theo: 3 + 6 = 98; vì hệ cơ số 8 nên lấy 9 - 8 = 1 viết 1, nhớ 1. số 1 được cộng thêm vào cột tiếp theo. 2 + 3 = 5 cộng thêm 1 nhớ bằng 6. kết quả cuối cùng là 616 hệ cơ số 8.

Tính trừ

[sửa | sửa mã nguồn]

Phép tính trừ theo quy chế tương tự. Một đơn vị bát phân được trừ với một đơn vị bát phân khác như sau:

       *  (hình sao đánh dấu các cột phải mượn)
     1 7 6 2
−      4 7 0
----------------
=    1 2 7 2 

Trừ hai số dương cũng tương tự như "cộng" một số âm với giá trị tương đồng của một số tuyệt đối; máy tính thường dùng ký hiệu Bù 8 để diễn đạt số có giá trị âm. Ký hiệu này loại trừ được nhu cầu bức thiết phải có một phương pháp làm phép trừ biệt lập. Xin xem thêm chi tiết trong chương mục Bù 8.

Ở đây, bắt đầu bằng cột cuối cùng bên phải, 2 - 0 = 28. Cột thứ hai từ cột cuối cùng bên phải được trừ tiếp theo: 6 - 7, vì 6 - 7 bị âm nên mượn 1 từ cột trái kế cạnh nên từ 7 thành 6 và vì mượn 1 trong hệ bát phân nên cột thứ hai được cộng thêm 8 thành 6 + 8 = 14. Khi đó 14 - 7 = 78. Cột thứ ba từ cột cuối cùng bên phải được trừ tiếp theo, vì đã bị mượn 1 từ cột thứ 2 nên thay vì là 7 mà là 6 nên 6 - 4 = 28. Và cột tiếp theo 1 - 0 = 18 và kết quả cuối cùng là 12728.

Tính nhân

[sửa | sửa mã nguồn]

Phép tính nhân trong hệ bát phân cũng tương tự như phương pháp làm trong hệ thập phân. Hai số A và B được nhân với nhau bởi những tích số cục bộ: với mỗi con số ở B, tích của nó với số một con số trong A được tính và viết xuống một hàng mới, mỗi hàng mới phải chuyển dịch vị trí sang bên trái, hầu cho con số cuối cùng ở bên phải đứng cùng cột với vị trí của con số ở trong B đang dùng. Tổng của các tích cục bộ này cho ta kết quả tích số cuối cùng.

Ví dụ, hai số bát phân 573464 được nhân với nhau như sau:

         5 7 3  (A)
      ×  4 6 4  (B)
      ---------
       2 7 5 4  
 +   4 3 4 2   
 + 2 7 5 4  
  ---------------
=  3 4 3 7 7 4 

Ở đây, cột đầu tiên bên phải ta có 3 * 4 = 12 = 1 * 8 + 4 nên ghi 4 nhớ 1. Cột tiếp theo 7 * 4 = 28 nhớ 1 là 29, 29 = 3 * 8 + 5 nên ghi 5 nhớ 3. Tương tự cho các cột tiếp theo và cộng các hàng như phép cộng trong bát phân.

Xem thêm Phương pháp làm tính nhân của Booth.

Tính chia

[sửa | sửa mã nguồn]

Tính chia bát phân cũng tương tự như phép chia trong hệ thập phân.

________
1 1 4 7 |1 1 

Ở đây ta có số bị chia là 11478, hoặc 615 trong số thập phân, số chia là 118, hoặc 9 trong số thập phân. Cách làm tương tự với cách làm trong số thập phân. Ở đây ta lấy 2 số đầu của số bị chia 118 để chia với số chia, tức là 11, được 1, viết lên trên hàng kẻ. Kết quả này được nhân với số chia, và tích số được trừ với 3 số đầu của số bị chia. Số tiếp theo là một con số 1 được hạ xuống để tạo nên một dãy số có ba con số, tương tự với số lượng các con số của số chia:

      1
    ________
    1 1 4 7 | 1 1
  − 1 1
    ---
      0 4 

Quy luật trên được lặp lại với những hàng số mới, tiếp tục cho đến khi tất cả các con số trong số bị chia đã được dùng hết:

      1 0 4
    ________
    1 1 4 7 | 1 1
  − 1 1
    ---
      0 4
    − 0 0 
      ---
        4 7 
      − 4 4 
        ---
          3 

Phân số của 11478 chia cho 118 là 1048, như liệt kê phía trên đường kẻ, trong khi số dư còn lại được viết ở hàng cuối là 38. Trong hệ thập phân, 615 chia cho 9 được 68, dư 3.

Phương pháp chuyển hệ từ bát phân sang các hệ khác và ngược lại

[sửa | sửa mã nguồn]

Phương pháp này có thể áp dụng để chuyển số từ bất cứ gốc nào. Trong các hệ thống số với giá trị của con số được định vị bởi vị trí của nó trong một dãy các ký hiệu con số, những con số ở vị trí thấp hơn, hoặc vị trí ít quan trọng hơn (ít quan trọng hơn là vì khi tính toán các số lớn và sai số xảy ra, mất những số này sẽ không quan trọng và không gây ảnh hưởng lớn đến kết quả tính toán, chẳng hạn số thập phân 10034 có thể được tính tròn số lại thành 10000 trong một thống kê dân số mà không gây ảnh hưởng lớn đến kết quả thống kê), thường có số mũ nhỏ hơn theo hệ số gốc (20 < 23). Số mũ đầu tiên, là một số kém hơn số lượng các chữ số, của một con số nào đó, bởi 1 giá trị. Một con số có 5 chữ số sẽ có số mũ đầu tiên bằng 4. Trong hệ thập phân, gốc của hệ là 10, vậy số cuối cùng ở bên trái của một số có 5 chữ số có số mũ là 4, được thể hiện là ở vị trí 104 (chục nghìn). Xem xét ví dụ sau:

97352 tương đương với:
9 × 104 (9 × 10000 = 90000) cộng
7 × 103 (7 × 1000 = 7000) cộng
3 × 102 (3 × 100 = 300) cộng
5 × 101 (5 × 10 = 50) cộng
2 × 100 (2 × 1 = 2)

Phép nhân với gốc của hệ số trở thành một phép tính đơn giản. Vị trí của các chữ số được dịch sang bên trái một vị trí, và số 0 được thêm vào ở phía bên phải của dãy các con số. Ví dụ 9735 nhân 10 bằng 97350. Một cách định giá trị của một dãy các con số, khi một con số được cộng vào sau con số cuối cùng, bằng cách nhân tất cả các chữ số trước con số cuối cùng ấy với gốc của hệ, trừ số cuối cùng ra, rồi cộng với con số ấy sau cùng. 97352 = 9735 x 10 + 2. Một ví dụ trong hệ bát phân là 2642178 = 264218 x 8 + 7. Đây chính là mấu chốt của phép biến đổi hệ số. Trong mỗi bước làm, chúng ta viết xuống con số sẽ phải đổi hệ theo công thức 8 × k + 0 hoặc 8 × k + 1 với một số nguyên k nào đó, và nó sẽ trở thành một số mới mà chúng ta muốn đổi.

128 tương đương:
16 × 8 + 0
(2 × 8 + 0) × 8 + 0
2 x 108 x 108
2008

Do vậy phương pháp biến đổi một số nguyên, ở hệ thập phân sang hệ nhị phân tương đương, có thể được tiến hành bằng cách chia số này với 2, và những số dư được viết xuống vào hàng (đơn vị) của nó. Kết quả lại tiếp tục được chia với 2, và số dư lại được viết xuống vào hàng (chục) của nó. Phương thức này được tiếp tục nhắc lại cho đến khi thương số của phép chia là 0.

Ví dụ, 128, trong hệ thập phân là:

Phép tính Số dư
128 ÷ 8 = 16 0
16 ÷ 8 = 2 0

Lược trình các con số dư theo thứ tự từ dưới lên trên, cho chúng ta một số nhị phân 11101102.

Để biến đổi một số bát phân sang hệ thập phân, chúng làm ngược lại. Bắt đầu từ bên trái, nhân đôi kết quả, rồi cộng con số bên cạnh cho đến khi không còn con số nào nữa. Lấy ví dụ để đổi 56178 sang hệ thập phân:

Kết quả Số còn lại
0 5617
0 x 8 + 5 = 5 617
5 x 8 + 6 = 46 17
46 x 8 + 1 = 369 7
369 x 8 + 7 = 2959

Kết quả là 2959.

Phần phân số trong một số tự nhiên được biến đổi với cùng một phương pháp, dựa vào phép toán chuyển vị bát phân để tăng gấp tám lần hoặc giảm xuống tám lần giá trị của con số.

Tra cứu tách số

[sửa | sửa mã nguồn]
Hệ bát phân Hệ nhị phân
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111

Ví dụ: 1234028 = 10100111000000102

và 1011010100110012 =

tách số:

101 101 010 011 0012 = 552318

Danh sách các hệ a có thể làm được điều này () xem dưới đây:

  • a có thể bằng:
    • 9 = 32
    • 16 = 24
    • 4 = 22
    • 32 = 25
    • 36 = 62

Phép đổi thông qua hệ nhị phân

[sửa | sửa mã nguồn]

Vì máy vi tính nói chung dùng hệ nhị phân, nên phương pháp đổi của máy thường là thông qua hệ nhị phân trước đã, sau đó dùng sự thông nối trực tiếp giữa bát phân và nhị phân, mà đổi sang hệ bát phân.

Tham khảo

[sửa | sửa mã nguồn]
  1. ^ Hệ bát phân và các hệ khác cũng có các suy nghĩ như vậy.

Liên kết ngoài

[sửa | sửa mã nguồn]