← Quay lại
02/01/2026 27 phút

Chương 10: Những số 10 khác

Mười là một số quá đỗi quan trọng với loài người. Nó là số ngón tay hay ngón chân của hầu hết mọi người và hẳn là ai cũng muốn có đủ mười ngón hơn. Vì đếm bằng ngón tay rất thuận tiện nên loài người chúng ta đã dựa vào đó để lắp đủ toàn bộ hệ số đếm dựa trên 10.


Như tôi đã đề cập ở chương trước, hệ số quy ước của ta được gọi là hệ cơ số mười, hay hệ thập phân. Số thập phân có vẻ như sinh ra để dành cho ta nên sẽ hơi khó khi thử nghĩ đến việc tìm kiếm một sự thay thế khác. Thật ra, khi ta thấy số 10 ta khó ngăn bản thân nghĩ tới một số lượng ví dụ như chừng này vịt:

10 = 🦆🦆🦆🦆🦆🦆🦆🦆🦆🦆

Lý do duy nhất khiến 10 đại diện cho số lượng vịt này là vì số con vịt đúng bằng với số ngón tay của ta. Nếu loài người có số ngón tay khác thì cách đếm sẽ khác đi và 10 cũng sẽ mang một ý nghĩa khác luôn. Cùng một số 10 có thể đại diện chừng này con vịt:

10 = 🦆🦆🦆🦆🦆🦆🦆🦆

hoặc chừng này:

10 = 🦆🦆🦆🦆

hoặc thậm chí nhiều như vầy:

10 = 🦆🦆

Khi ta đến được mốc mà 10 chỉ hai con vịt, khi đó ta đã sẵn sàng để tìm hiểu xem cách các công tắc, dây dẫn, bóng đèn có thể đại diện số và rơle cùng cổng logic (và mở rộng ra là máy tính) có thể thao tác với số.

Sẽ ra sao nếu loài người chỉ có bốn ngón trên mỗi bàn tay, giống như các nhân vật hoạt hình? Có lẽ chúng ta sẽ chẳng bao giờ nghĩ tới việc phát triển một hệ số dựa trên mười. Thay vào đó, ta sẽ cảm thấy bình thường, tự nhiên, hợp lý, hiển nhiên, không thể chối cãi và không thể phủ nhận tính đúng đắn của việc hệ số của chúng ta nay sẽ dựa trên tám. Nó được gọi là hệ bát phân, hay hệ cơ số tám.

Nếu hệ số của ta được tổ chức dựa trên tám chứ không phải mười, ta sẽ không cần đến ký tự này:

9

Đưa nó cho các nhân vật hoạt hình và bạn sẽ nhận được câu hỏi “Cái gì đó mày? Có ăn được không?” Và nếu bạn nghĩ thêm chút nữa sẽ thấy chẳng cần luôn ký tự này:

8

Trong hệ thập phân, không có ký tự đặc biệt nào cho mười cả, nên trong hệ bát phân cũng chẳng có ký tự đặc biệt cho tám.

Cách ta đếm trong hệ thập phân là 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 và tới 10. Cách ta đếm trong hệ bát phân sẽ là 0, 1, 2, 3, 4, 5, 6, 7 và tới gì nữa? Ta hết ký tự rồi. Thứ duy nhất còn có nghĩa là 10, và chính xác. Trong hệ bát phân, số tiếp theo sau 7 là 10. Nhưng số 10 này không mang nghĩa là số ngón tay mà con người có. Trong hệ bát phân, 10 ám chỉ đến số ngón tay mà các nhân vật hoạt hình có.


Chúng ta có thể tiếp tục đếm tiếp bằng bàn chân bốn ngón:


Khi làm việc với hệ số không phải thập phân, bạn có thể tránh được nhầm lẫn nếu như bạn phát âm một số giống như 10 là một không. Tương tự, 13 được phát âm là một ba và 20 được phát âm là hai không. Để chính xác hơn và thật sự tránh lẫn lộn, bạn có thể nói một ba cơ số tám hay hai không bát phân.

Mặc dù đã đếm hết số ngón trên cả chân và tay, ta vẫn có thể đếm tiếp bằng hệ bát phân. Về cơ bản nó giống với hệ thập phân ngoại trừ việc phải bỏ qua bất kì số nào có 8 hay 9 trong đó:
 
0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 42, 43, 44, 45, 46, 47, 50, 51, 52, 53, 54, 55, 56, 57, 60, 61, 62, 63, 64, 65, 66, 67, 70, 71, 72, 73, 74, 75, 76, 77, 100…

Số cuối cùng được đọc lên là một không không. Đó là số ngón tay mà nhân vật hoạt hình có nhân với chính nó.

Cả cuộc đời quen thuộc với số thập phân đã khiến chúng ta mong đợi rằng một chuỗi chữ số nhất định phải tương ứng với một đại lượng cụ thể trong đời thực. Đếm bằng hệ số khác như bước vào một thế giới lạ lẫm. Đây là vài ví dụ cho số bát phân:

Số chú lùn mà nàng Bạch Tuyết gặp là 7, như trong thập phân.
Số ngón tay nhân vật hoạt hình có là 10.
Số bản giao hưởng Beethoven đã viết là 11.
Số ngón tay con người có là 12.
Số tháng trong một năm là 14.

Nếu bạn thấy mình thầm đổi từ bát phân thập phân thì giỏi đó. Đó là một bài tập hay. Với số bát phân hai-chữ-số bắt đầu bằng 1 thì số thập phân tương ứng sẽ là 8 cộng số thứ hai. Số tháng trong bát phân là 14, nên trong thập phân là 8 cộng 4, bằng 12. Tiếp tục nào:

Một tá bánh mì là 15 (Nguyên văn là A bake's dozen).
Số ngày trong 2 tuần là 16.
Buổi tiệc sinh nhật "ngọt ngào" là 20.
Số giờ trong một ngày là 30.
Số chữ cái trong bảng chữ cái La tin là 32.

Khi một số bát phân hai-chữ-số bắt đầu bằng số khác 1, thì việc đổi sang thập phân hơi khác một chút: Bạn cần nhân số đầu tiên với 8 rồi cộng số thứ hai vào. Số chữ cái trong bảng chữ cái là 32 trong bát phân, nên trong thập phân là 3 lần 8 (24) cộng 2 bằng 26.

Số ounce chất lỏng trong một quart là 40.
Số lá trong một bộ bài là 4 lần 15, 64.
Số ô vuông trong bàn cờ vua là 10 lần 10, 100.

Trong thập phân, số ô vuông trong bàn cờ là 8 lần 8, 64.

Số yard trong một sân bóng đá Mỹ là 144.
Số tay vợt đơn nữ bắt đầu chơi ở Wimbledon là 200.
Số ký tự trong Braille 8-chấm là 400.

Danh sách này chứa vài số bát phân tròn như 100, 200 và 400. Khái niệm số tròn thường mang nghĩa là một số có vài số không ở cuối. Hai số không ở cuối một số thập phân là bội số của 100, hay 10 nhân 10.

Với số bát phân, hai số không ở cuối nghĩa là số đó cũng là một bội của 100, nhưng là 100 trong bát phân, hay 64 trong thập phân. Số tay vợt đơn nữ bắt đầu chơi ở Wimbledon là 128 trong thập phân và số kí tự Braille 8-chấm là 256.

Ba chương đầu của sách khám phá ra mã nhị phân có liên quan tới luỹ thừa hai. Số mã Morse với bốn chấm và gạch là 2 mũ 4, 16. Số mã trong Braille 6-chấm là 2 mũ 6, 64. Braille 8-chấm tăng số mũ lên 8, 256. Hễ nhân một luỹ thừa hai với luỹ thừa hai thì kết quả nhận được cũng là một luỹ thừa hai.

Bảng sau chỉ ra 12 lũy thừa hai đầu tiên trong thập phân và bát phân:

Luỹ thừa hai | Thập phân | Bát phân
    2^0      |     1     |    1
    2^1      |     2     |    2
    2^2      |     4     |    4
    2^3      |     8     |    10
    2^4      |     16    |    20
    2^5      |     32    |    40
    2^6      |     64    |    100
    2^7      |     128   |    200
    2^8      |     256   |    400
    2^9      |     512   |   1000
    2^10     |    1024   |   2000
    2^11     |    2048   |   4000
    2^12     |    4096   |   10000

Vì tám là luỹ thừa của hai nên cột Bát phân hiện rất nhiều số tròn và do đó gợi ý một mối quan hệ gần gũi hơn với mã nhị phân so với thập phân.

Cấu trúc của hệ bát phân không khác hệ thập phân là mấy. Nó chỉ khác ở chi tiết thôi. Ví dụ, mỗi vị trí trong một số bát phân là một bội của tám:

⬜️ ⬜️ ⬜️ ⬜️ ⬜️ ⬜️
|  |  |  |  |  |___ Số số một
|  |  |  |  |______ Số số tám
|  |  |  |_________ Số số sáu mươi bốn
|  |  |____________ Số số năm trăm mười hai
|  |_______________ Số số bốn ngàn chín mươi sáu
|__________________ Số số ba mươi hai ngàn bảy trăm sáu mươi tám

Thế nên, một số bát phân như 3725 có thể tách ra thành:
 
3725 = 3000 + 700 + 20 + 5

Nó cũng được diễn tả bằng các chữ số đơn lẻ nhân với luỹ thừa bát phân của tám:
 
3725 = 3 × 1000 + 7 × 100 + 2 × 10 + 5 × 1

Một cách viết khác:
 
3725 = 3 × 8^3 + 7 × 8^2 + 2 × 8^1 + 5 × 8^0

Nếu làm phép tính này trong hệ thập phân, bạn sẽ được 2005. Đó là cách bạn đổi từ bát phân sang thập phân.

Bạn có thể cộng và nhân số bát phân giống như cộng và nhân số thập phân. Khác ở chỗ ta dùng một bảng khác để cộng và nhân từng con số. Đây là bảng cộng cho số bát phân:

image.png 56.9 KB

Ví dụ, 5 + 7 = 14. Nên ta có thể cộng hai số bát phân dài hơn tương tự như cộng số thập phân. Đây là bài tập nhỏ nhìn thì giống cộng thập phân nhưng số lại là bát phân. Dùng bảng trên để cộng số theo cột:

  135
+ 643
_____
 1000

Cộng mỗi cột lại được một số lớn hơn 7 bát phân nên phải nhớ một cho cột tiếp theo. Kết quả là 1000.

Tương tự, 2 lần 2 vẫn là 4 trong hệ bát phân. Nhưng 3 nhân 3 không còn là 9 nữa. Vậy bằng bao nhiêu? Thay vào đó 3 lần 3 sẽ bằng 11. Bạn có thể thấy toàn bộ bảng bội số bát phân ở đây:

image.png 44.2 KB

Bảng này cho thấy 4 × 6 bằng 30 hay 24 trong thập phân.

Hệ bát phân là hệ số có hiệu lực giống hệ thập phân. Nhưng hãy tiến xa hơn nữa. Nãy giờ ta đã xây dựng hệ số cho nhân vật hoạt hình, giờ hãy tạo thứ gì đó thích hợp cho tôm hùm. Tôm hùm đích thị không có ngón nhưng chúng có gọng kìm ở cuối hai càng. Một hệ số thích hợp cho tôm hùm là hệ tứ phân, hay cơ số bốn:


Việc đếm trong hệ tứ phân diễn ra như sau: 0, 1, 2, 3, 10, 11, 12, 13, 20, 21, 22, 23, 30, 31, 32, 33, 100, 101, 102, 103, 110, 111, 112, 113, 120 và cứ thế.

Tôi sẽ không tốn nhiều thời gian cho hệ tứ phân vì chúng ta sẽ sớm tiến tới thứ khác quan trọng hơn. Nhưng bạn có thể thấy mỗi vị trí trong hệ tứ phân lần này tương ứng với lũy thừa của bốn:

⬜️ ⬜️ ⬜️ ⬜️ ⬜️ ⬜️
|  |  |  |  |  |___ Số số một
|  |  |  |  |______ Số số bốn
|  |  |  |_________ Số số mười sáu
|  |  |____________ Số số sáu mươi bốn
|  |_______________ Số số hai trăm năm mươi sáu
|__________________ Số số một ngàn hai mươi bốn

Số tứ phân 31232 có thể được viết lại như sau:
 
31232 = 3 × 10000 + 1 × 1000 + 2 × 100 + 3 × 10 + 2 × 1

Nhân mỗi số với luỹ thừa bốn:
 
31232 = 3 × 4^4 + 1 × 4^3 + 2 × 4^2 + 3 × 4^1 + 2 × 4^0

Nếu bạn thực hiện phép tính trong hệ thập phân sẽ thấy là 31232 bằng với 878 trong bát phân.

Giờ chúng ta sẽ thực hiện một bước nhảy vọt khác và lần này sẽ là xa nhất. Hãy tưởng tượng ta là các chú cá heo và chỉ trông cậy vào hai vây để đếm thôi. Đây là hệ số được biết đến là cơ số hai, hay hệ nhị phân (từ chữ Latin là hai lần hai). Nó trông có vẻ như ta chỉ có hai con số, chúng là 0 và 1.

Bạn đã thấy cách 1 và 0 có thể được dùng trong đại số Boolean để đại diện Đúng hay Sai, Có hay Không, Mèo Tốt hay Mèo Chưa Tốt Lắm. Bạn cũng có thể dùng hai chữ số này để đếm.

Giờ 0 và 1 không phải gì to tát để nhọc sức nhưng cũng cần vài bài tập để làm quen với hệ nhị phân. Vấn đề ở đây là bạn sẽ chóng dùng hết các con số. Ví dụ, đây là cách cá heo đếm bằng vây của chúng:


Vâng, trong hệ nhị phân số kế tiếp sau 1 là 10. Sửng sốt chưa? Nhưng thật ra thì cũng không ngạc nhiên mấy đâu. Dù cho ta có dùng hệ số nào đi nữa, hễ khi nào ta hết chữ số đơn thì số có hai chữ số đầu tiên luôn luôn là 10. Trong hệ nhị phân ta đếm như thế này:
 
0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111, 10000, 10001,…

Những số này thoạt trông có vẻ lớn lắm nhưng thực ra thì không đâu. Chính xác hơn nên nói số nhị phân trở nên dài rất nhanh so với lớn:
 
Số cái đầu mà một người có là 1.
Số vây mà cá heo có là 10.
Số teaspoons trong một tablespoon là 11 (đơn vị đo lường)
Số cạnh của hình vuông là 100.
Số ngón tay trên một bàn tay người là 101.
Số chân trên một con bọ là 110.
Số ngày trong tuần là 111.
Số hiệp trong một trận bóng chày là 1001.
Số gallon trong một chiếc mũ cao bồi là 1010.
và cứ thế

Trong một số nhị phân có nhiều chữ số, vị trí các chữ số tương ứng với lũy thừa của hai:

⬜️ ⬜️ ⬜️ ⬜️ ⬜️ ⬜️
|  |  |  |  |  |___ Số số một
|  |  |  |  |______ Số số hai
|  |  |  |_________ Số số bốn
|  |  |____________ Số số tám
|  |_______________ Số số mười sáu
|__________________ Số số ba mươi hai

Vậy nên bất cứ lúc nào ta có một số nhị phân là tổ hợp của 1 và theo sau đều là số 0, thì số đó chắc chắn là lũy thừa của hai và số mũ sẽ bằng với số số 0 trong đó. Dưới đây là bảng mở rộng lũy thừa hai để chứng minh quy luật này:

Luỹ thừa hai | Thập phân | Bát phân |   Tứ phân   |    Nhị phân 
    2^0      |     1     |    1     |           1 |             1
    2^1      |     2     |    2     |          2  |            10
    2^2      |     4     |    4     |         10  |           100
    2^3      |     8     |    10    |         20  |          1000
    2^4      |     16    |    20    |        100  |         10000
    2^5      |     32    |    40    |        200  |        100000
    2^6      |     64    |    100   |       1000  |       1000000
    2^7      |     128   |    200   |       2000  |      10000000
    2^8      |     256   |    400   |      10000  |     100000000
    2^9      |     512   |   1000   |      20000  |    1000000000
    2^10     |    1024   |   2000   |     100000  |   10000000000
    2^11     |    2048   |   4000   |     200000  |  100000000000
    2^12     |    4096   |   10000  |    1000000  | 1000000000000

Cho một số nhị phân 101101011010. Có thể viết lại là
 
101101011010 = 1 × 100000000000 + 
0 × 10000000000 + 
1 × 1000000000 + 
1 × 100000000 + 
0 × 10000000 + 
1 × 1000000 + 
0 × 100000 + 
1 × 10000 +
1 × 1000 +
0 × 100 + 
1 × 10 + 
0 × 1

Rút gọn dùng luỹ thừa hai:
 
101101011010 = 1 × 2^11 +
 0 × 2^10 +
 1 × 2^9 +
 1 × 2^8 +
 0 × 2^7 +
 1 × 2^6 +
 0 × 2^5 +
 1 × 2^4 +
 1 × 2^3 +
 0 × 2^2 +
 1 × 2^1 +
 0 × 2^0

Nếu cộng hết các phần theo hệ thập phân, ta sẽ được 2048 + 512 + 256 + 64 + 16 + 8 + 2, bằng 2.906 và đó là số thập phân tương đương với số nhị phân ở trên.

Để đổi từ số nhị phân sang thập phân được chính xác hơn, bạn sẽ thích một phương pháp dùng khuôn mẫu như tôi đã chuẩn bị đây:

 ⬜️   ⬜️   ⬜️   ⬜️   ⬜️   ⬜️   ⬜️   ⬜️
x128  x64  x32  x16  x8   x4   x2   x1
 ⬜️ + ⬜️ + ⬜️ + ⬜️ + ⬜️ + ⬜️ + ⬜️ + ⬜️ = ⬜️

Mẫu này cho phép đổi số lên đến tám chữ số nhị phân, và chúng vẫn có thể dễ dàng mở rộng thêm nữa. Để sử dụng, hãy đặt tám chữ số nhị phân vào 8 ô trên cùng, một chữ số vào một ô. Làm hết tám phép nhân và đặt các tích vào 8 ô phía dưới. Cộng hết chúng lại để được kết quả cuối cùng. Ví dụ này minh họa cho cách tìm ra số thập phân tương ứng với 10010110:

  1    0    0    1    0    1    1    0    
x128  x64  x32  x16  x8   x4   x2   x1
 128 + 0  + 0  + 16 + 0  + 4  + 2  + 0 = 150

Đổi từ thập phân sang nhị phân thì không được mượt cho lắm, nhưng dưới đây là một bộ khuôn mẫu cho phép bạn đổi từ 0 tới 255 sang nhị phân:

 ⬜️   ⬜️   ⬜️   ⬜️   ⬜️   ⬜️   ⬜️   ⬜️
÷128  ÷64  ÷32  ÷16  ÷8   ÷4   ÷2   ÷1
 ⬜️   ⬜️   ⬜️   ⬜️   ⬜️   ⬜️   ⬜️   ⬜️ = ⬜️

Phép đổi ở đây cần tinh ý một chút mới nhận ra điểm đặc biệt mà vẻ bề ngoài đơn giản của nó đã che đậy, vậy nên hãy cẩn thận mà làm theo hướng dẫn đây. Đầu tiên, đặt toàn bộ số thập phân (nhỏ hơn hoặc bằng 255) vào hộp ở trên bên trái:

 150  ⬜️   ⬜️   ⬜️   ⬜️   ⬜️   ⬜️   ⬜️
÷128  ÷64  ÷32  ÷16  ÷8   ÷4   ÷2   ÷1
 ⬜️   ⬜️   ⬜️   ⬜️   ⬜️   ⬜️   ⬜️   ⬜️ = ⬜️

Chia số đó cho 128 nhưng chỉ cần nhận được thương và số dư: 150 chia 128 được 1 dư 22. Đặt thương vào ô đầu tiên bên dưới và số dư vào ô trên bên phải:

 150   22  ⬜️   ⬜️   ⬜️   ⬜️   ⬜️   ⬜️
÷128  ÷64  ÷32  ÷16  ÷8   ÷4   ÷2   ÷1
  1   ⬜️   ⬜️   ⬜️   ⬜️   ⬜️   ⬜️   ⬜️ = ⬜️

Giờ chia 22 cho 64, nhưng một lần nữa chỉ cần thương và số dư: Vì 22 nhỏ hơn 64 nên thương là 0 và số dư là 22. Đặt 0 vào hộp thứ hai ở dưới và đưa số dư vào hộp tiếp theo bên trên:

 150   22   22  ⬜️   ⬜️   ⬜️   ⬜️   ⬜️
÷128  ÷64  ÷32  ÷16  ÷8   ÷4   ÷2   ÷1
  1    0   ⬜️   ⬜️   ⬜️   ⬜️   ⬜️   ⬜️ = ⬜️

Cứ làm tiếp như vậy đến khi điền hết các ô. Mỗi thương sẽ hoặc là 0 hoặc là 1, nên khi bạn xong các hộp bên dưới là một chuỗi chữ số nhị phân:

 150   22   22   22   6    6    2    0
÷128  ÷64  ÷32  ÷16  ÷8   ÷4   ÷2   ÷1
  1    0     0    1   0    1    1    0

Số nhị phân tương ứng với 150 là 10010110.

Chuyển đổi giữa số thập phân và nhị phân hơi khó khăn nên nếu bạn cần phải làm hẳn sẽ rất vui khi biết rằng ứng dụng máy tính trên cả Windows và macOS có chức năng Programmer giúp bạn làm điều này dễ dàng.

Số nhị phân không được dùng phổ cập trong máy tính điện tử đời đầu. Vài máy tính đầu tiên được thiết kế và xây dựng để dùng số thập phân. Analytical Engine mà nhà toán học Anh Charles Babbage (1791-1871) thiết kế vào đầu vào những năm 1830 lưu trữ số thập phân bằng vị trí của bánh xe có răng. (Thật không may, ông ấy không thể xây dựng cái máy này). Vài máy tính hoạt động đời đầu khác như Harvard Mark I (sử dụng lần đầu năm 1944) và ENIAC (1946) cũng được tạo ra để làm việc với số thập phân. Vài máy tính IBM sản xuất năm 1960 cũng có kiến trúc dựa trên số thập phân.

Nhưng hơn hết thảy, chính mã hoá nhị phân đã đại diện cho cuộc cách mạng điện tử. Sự giản đơn của số nhị phân có lẽ là bằng chứng rõ ràng nhất trong phép tính cộng và nhân cơ bản. Đây là phần bạn sẽ thật sự thích. Tưởng tượng xem bạn có thể thành thạo phép cộng rất nhanh nếu điều duy nhất cần phải nhớ chỉ thế này:

 + | 0 | 1
--- --- ---
 0 | 0 | 1
--- --- ---
 1 | 1 | 10

Hãy dùng chính bảng đó để cộng hai số nhị phân:

  1100101
+ 0110110
---------
 10011011

Bắt đầu từ cột ngoài cùng bên phải: 1 cộng 0 bằng 1. Cột thứ hai từ phải qua: 0 cộng 1 bằng 1. Cột thứ ba: 1 cộng 1 bằng 0, nhớ 1. Cột thứ tư, 1 (nhớ) cộng 0 cộng 0 bằng 1. Cột thứ năm: 0 cộng 1 bằng 1. Cột thứ 6: 1 cộng 1 bằng 0, nhớ 1. Cột thứ 7: 1 (nhớ) cộng 1 cộng 0 bằng 10.

Bảng phép nhân thậm chí còn đơn giản hơn bảng cộng bởi vì có thể rút ra toàn bộ bảng chỉ bằng cách dùng hai quy luật đơn giản nhất của phép nhân: Nhân mọi thứ với 0 đều bằng 0, và nhân số nào với 1 cũng đều bằng chính nó.

 x | 0 | 1
--- --- ---
 0 | 0 | 0
--- --- ---
 1 | 0 | 1

Đây là phép nhân của 13 thập phân (1101 nhị phân) với 11 thập phân (1011 nhị phân). Tôi sẽ không trình bày tất cả các bước, nhưng nó tương tự quy trình nhân thập phân:

    1101
  x 1011
--------
    1101
   1101
  0000
 1101
--------
10001111

Kết quả trong thập phân là 143.

Những người hay làm việc với số nhị phân thường viết chúng kèm các số 0 ở đầu (đó là các số 0 nằm bên trái số 1 đầu tiên) – ví dụ như viết 0011 chứ không chỉ 11. Điều này không làm thay đổi giá trị của số mà chỉ để cho đẹp thôi. Lấy ví dụ, dưới đây là mười sáu số nhị phân cùng với các số thập phân tương ứng:

 Nhị phân | Thập phân
   0000   |      0
   0001   |      1
   0010   |      2
   0011   |      3
   0100   |      4
   0101   |      5
   0110   |      6
   0111   |      7
   1000   |      8
   1001   |      9
   1010   |     10
   1011   |     11
   1100   |     12
   1101   |     13
   1110   |     14
   1111   |     15

Hãy dừng lại và ngâm cứu bảng số nhị phân này một lúc. Xem xét mỗi bốn cột dọc của không và một rồi chú ý cách các số thay thế nhau chạy dọc từ trên xuống:

  • Chữ số ngoài cùng bên phải so le giữa 0 và 1.
  • Chữ số thứ hai từ phải qua luân phiên cứ mỗi hai số 0 và hai số 1.
  • Chữ số tiếp theo luân phiên cứ mỗi bốn số 0 và bốn số 1.
  • Chữ số tiếp theo luân phiên mỗi tám số 0 và tám số 1.

Nhìn chúng rất trật tự đúng không? Thật ra, nó trật tự đến nỗi có thể tạo một mạch để tạo dãy số nhị phân một cách tự động.

Hơn nữa bạn có thể dễ dàng viết tiếp 16 số nhị phân tiếp theo chỉ bằng việc lặp lại mười sáu số đó và thêm số 1 ở đằng trước nữa là xong:

 Nhị phân | Thập phân
  10000   |     16
  10001   |     17
  10010   |     18
  10011   |     19
  10100   |     20
  10101   |     21
  10110   |     22
  10111   |     23
  11000   |     24
  11001   |     25
  11010   |     26
  11011   |     27
  11100   |     28
  11101   |     29
  11110   |     30
  11111   |     31

Còn một cách nhìn nhận khác: Khi đếm trong nhị phân, chữ số cuối cùng bên phải (cũng được gọi là chữ số ít quan trọng nhất), luân phiên thay đổi giữa 0 và 1. Cứ mỗi lần nó đổi từ 1 sang 0, chữ số thứ hai từ phải qua (hay chữ số quan trọng tiếp theo) cũng thay đổi (0→1 hoặc 1→0). Nói chung, cứ mỗi lần một chữ số nhị phân thay đổi từ 1 sang 0, chữ số quan trọng tiếp theo cũng thay đổi theo (0→1 hoặc 1→0).

Số nhị phân có thể dài ra rất là nhanh. Ví dụ, mười hai triệu trong nhị phân sẽ là 101101110001101100000000. Một cách thể hiện số nhị phân chuẩn xác hơn là viết chúng theo bát phân:

Nhị phân | Bát phân
   000   |     0
   001   |     1
   010   |     2
   011   |     3
   100   |     4
   101   |     5
   110   |     6
   111   |     7

Lấy số nhị phân dài cho mười hai triệu ở trên làm ví dụ và chia nó thành các nhóm ba từ phải sang:

101 101 110 001 101 100 000 000

Mỗi nhóm ba số nhị phân tương ứng với một chữ số bát phân:

55615400

Mười hai triệu trong thập phân là 55.615.400 trong bát phân. Trong chương 12, bạn sẽ thấy một cách còn chính xác hơn để thể hiện số nhị phân.

Bằng cách giảm hệ số xuống còn nhị phân tức chỉ có 0 và 1, ta đã đi xa hết mức có thể. Ta không thể tìm ra hệ nào đơn giản hơn nữa ngoài việc vẽ các gạch. Nhưng điều quan trọng nhất là số nhị phân giúp cho toán học và điện thống nhất. Công tắc, dây dẫn và bóng đèn tất cả đều có thể đại diện bởi chữ số nhị phân 0 và 1, và với phép cộng cổng logic, những số này có thể thao tác được. Đây là lí do số nhị phân có rất nhiều thứ để làm với máy tính.

Bạn đã thấy bảng nhỏ thể hiện tương quan giữa số nhị phân ba-chữ-số và số tương đương trong bát phân. Dùng công tắc, bóng đèn, và cổng logic bạn có thể tạo một mạch thể hiện phép chuyển đổi này cho bạn:

image.png 80.6 KB


Mạch này trông khá hãi ngay từ cái nhìn đầu tiên, một ác mộng của các cao tốc chồng chéo ở một thành phố xa lạ nào đó nơi tất cả đèn đường chả thể nhìn ra. Nhưng thực sự nó khá có hệ thống. Chấm thể hiện các dây dẫn nối với nhau. Mặt khác, dây không được nối mà chỉ chồng lên nhau.

Mạch bắt đầu từ trên với ba công tắc đại diện cho số nhị phân ba-chữ-số. Những công tắc này đóng cho 1 và mở cho 0. Ví dụ này thể hiện cách số nhị phân 100 được đại diện. Nằm ở dưới là tám bóng đèn gắn nhãn từ 0 tới 7. Chỉ một trong số chúng phát sáng phụ thuộc vào công tắc nào được đóng.

Chắc là đi từ dưới mạch lên sẽ dễ hiểu hơn: Mỗi một trong tám bóng đèn phía dưới được cung cấp điện bởi một cổng AND ba-input. Output của cổng AND là 1 chỉ khi nếu tất cả ba input đều là 1. Ba input vào mỗi cổng AND tương ứng với ba công tắc, có lúc trực tiếp lúc khác với tín hiệu được đảo bởi ba inverter ngay dưới công tắc. Nhớ lại là nếu input cho inverter là 0 thì output là 1 và nếu input là 1 thì output là 0.

Ba công tắc bên trên được vẽ đóng, mở và mở, thể hiện số nhị phân 100. Nếu bạn truy theo đường màu đỏ sẽ thấy chữ số quan trọng nhất (1) là một trong các input của cổng AND cho số bát phân 4. Số tiếp theo (công tắc ở giữa) được đảo trước khi trở thành input của chính cổng AND đó.  Chữ số ít quan trọng nhất (công tắc bên phải) cũng bị đảo trước khi trở thành input thứ ba cho cổng AND. Do đó, cổng AND cho số bát phân 4 có tất cả ba input đều là 1, và đó là lí do output của nó là 1.

Tương tự, mỗi bảy cổng AND còn lại có đầu vào là một tổ hợp khác nhau của các tín hiệu từ công tắc hoặc tín hiểu đảo.

Thiết bị nhỏ bé này được gọi là bộ giải mã 3-ra-8. Tên này ngầm truyền tải ý nghĩa rằng một số nhị phân ba-chữ-số là đại diện cho một trong tám khả năng.

Một mạch khác, gọi là bộ mã hoá 8-ra-3, thực hiện nhiệm vụ ngược lại. Để minh hoạ, hãy tạo một loại công tắc khác cho phép chọn một trong tám vị trí. Ngoài đời, bạn có thể làm công tắc này từ đinh và kim loại cắt ra từ lon:

image.png 78.3 KB


Mỗi chữ số nhị phân bên dưới được đại diện bằng một bóng đèn điều khiển bởi một cổng OR bốn-input. Output của cổng OR là 1 nếu bất kì input nào là 1. Khi công tắc bên trên chọn số bát phân 6, cổng OR đầu tiên và thứ hai có một input 1, khiến output của những cổng OR này thành 1, đèn hiện chữ số nhị phân 110. Để ý là vị trí của công tắc 0 ở trên bên trái không được nối với gì cả. Đó là bởi số bát phân 0 là số nhị phân 000, nên không cần đèn sáng.

Nào khoảng năm 1947, một nhà toán học người Mỹ John Wilder Tukey (1915-2000) cảm thấy từ binary digit (chữ số nhị phân) dần dà sẽ chiếm một tầm quan trọng lớn khi máy tính càng ngày càng thịnh hành. Ông quyết định đặt một cái tên mới, ngắn hơn để thay thế năm âm tiết chậm chạp của binary digit. Ông xem xét giữa bigitbinit nhưng cuối cùng lại đến với một từ ngắn, đơn giản, tao nhã và dễ thương một cách hoàn hảo, đó là bit.
Cảm ơn bạn đã đọc bài.
34

Open to Work

Looking for a Fullstack Ruby on Rails developer?

I am open to new remote/hybrid opportunities and contract work.

Thảo luận trên Bluesky

Đi

Đang tải bình luận...

Powered by Bluesky AT Protocol