Máy tính không hiểu ngôn ngữ của con người một cách trực tiếp. Mặc dù phần mềm hiện đại giúp chúng ta dễ dàng tương tác với máy tính, ở cấp độ cơ bản nhất, mọi thứ trong máy tính đều được biểu diễn bằng tín hiệu điện nhị phân, chỉ có hai trạng thái: bật (1) hoặc tắt (0). Để xử lý dữ liệu phức tạp, máy tính phải mã hóa thông tin thành dạng nhị phân.
Hệ nhị phân là một hệ thống số cơ sở 2. “Cơ sở 2” nghĩa là nó chỉ sử dụng hai chữ số: 1 và 0, tương ứng với trạng thái “bật” và “tắt” mà máy tính có thể hiểu được. Chúng ta thường quen thuộc với hệ thập phân (cơ sở 10), sử dụng mười chữ số từ 0 đến 9. Trong hệ thập phân, mỗi chữ số có giá trị gấp mười lần so với chữ số bên phải nó (ví dụ: 1, 10, 100). Hệ nhị phân tương tự, nhưng mỗi chữ số có giá trị gấp đôi so với chữ số bên phải.
Đếm trong Hệ Nhị Phân
Trong hệ nhị phân, chữ số đầu tiên (từ phải sang trái) có giá trị là 1 trong hệ thập phân. Chữ số thứ hai có giá trị là 2, chữ số thứ ba là 4, chữ số thứ tư là 8, và cứ thế tiếp tục nhân đôi. Tổng các giá trị này sẽ cho ra số thập phân tương ứng. Ví dụ:
1111 (nhị phân) = 8 + 4 + 2 + 1 = 15 (thập phân)
Tính cả số 0, bốn bit nhị phân cho phép biểu diễn 16 giá trị khác nhau. Với 8 bit, chúng ta có thể biểu diễn 256 giá trị. Rõ ràng, hệ nhị phân tốn nhiều không gian hơn để biểu diễn số so với hệ thập phân (bốn chữ số thập phân có thể biểu diễn 10.000 giá trị). Vậy tại sao chúng ta lại sử dụng hệ nhị phân? Câu trả lời là vì máy tính hiểu nhị phân dễ dàng hơn nhiều so với thập phân. Dù nhị phân tốn nhiều không gian hơn, phần cứng máy tính lại hoạt động hiệu quả hơn với nó. Và đối với một số tác vụ, như xử lý logic, nhị phân vượt trội hơn thập phân.
Một hệ thống cơ số khác thường được sử dụng trong lập trình là hệ thập lục phân (hexadecimal). Mặc dù máy tính không trực tiếp chạy trên hệ thập lục phân, các lập trình viên sử dụng nó để biểu diễn các địa chỉ nhị phân dưới dạng dễ đọc hơn. Hai chữ số thập lục phân có thể biểu diễn một byte (8 bit) đầy đủ. Hệ thập lục phân sử dụng các chữ số 0-9 như hệ thập phân, và thêm các chữ cái A-F để biểu diễn sáu chữ số bổ sung.
Tại Sao Máy Tính Sử Dụng Hệ Nhị Phân?
Câu trả lời ngắn gọn là: vì phần cứng và các định luật vật lý. Mỗi con số trong máy tính của bạn là một tín hiệu điện. Trong những ngày đầu của máy tính, việc đo lường và kiểm soát tín hiệu điện một cách chính xác là rất khó khăn. Do đó, việc phân biệt giữa hai trạng thái – “bật” (có điện áp) và “tắt” (không có điện áp) – trở nên đơn giản và đáng tin cậy hơn. “Bật” thường được biểu diễn bằng điện tích dương, vì các electron mang điện tích âm.
Vì vậy, những chiếc máy tính khổng lồ thời kỳ đầu đã sử dụng hệ nhị phân để xây dựng hệ thống của chúng. Mặc dù phần cứng đã tiến bộ vượt bậc, nguyên tắc cơ bản vẫn được giữ nguyên. Các máy tính hiện đại sử dụng các bóng bán dẫn (transistor) để thực hiện các phép tính với hệ nhị phân.
Về cơ bản, bóng bán dẫn cho phép dòng điện chạy từ nguồn (source) đến cực máng (drain) nếu có dòng điện được áp vào cổng (gate). Điều này tạo thành một chuyển mạch nhị phân. Các nhà sản xuất có thể chế tạo các bóng bán dẫn cực kỳ nhỏ, kích thước chỉ vài nanomet. Đây là cách các CPU hiện đại hoạt động. Tuy nhiên, ngay cả với công nghệ tiên tiến này, việc phân biệt giữa trạng thái “bật” và “tắt” vẫn có thể gặp khó khăn do kích thước siêu nhỏ của bóng bán dẫn và ảnh hưởng của cơ học lượng tử.
Tại Sao Chỉ Có Cơ Số 2?
Tại sao chúng ta chỉ sử dụng 0 và 1? Tại sao không thêm một chữ số nữa? Về mặt lý thuyết, chúng ta có thể sử dụng nhiều mức điện áp khác nhau để biểu diễn nhiều trạng thái hơn. Tuy nhiên, việc này sẽ đòi hỏi phần cứng phức tạp hơn để phân biệt và xử lý các mức điện áp khác nhau.
Vấn đề là nếu bạn muốn sử dụng nhiều cấp điện áp, bạn cần một cách dễ dàng để thực hiện các phép tính với chúng và phần cứng hiện tại không thể thay thế cho điện toán nhị phân. Điện toán tam phân (ternary computing), sử dụng cơ số 3, đã được nghiên cứu từ những năm 1950, nhưng sự phát triển của nó đã bị đình trệ. Logic tam phân hiệu quả hơn nhị phân, nhưng cho đến nay, chưa có sự thay thế hiệu quả cho bóng bán dẫn nhị phân, hoặc ít nhất, chưa có nỗ lực phát triển chúng ở quy mô nhỏ như nhị phân.
Lý do chúng ta không thể sử dụng logic tam phân bắt nguồn từ cách các bóng bán dẫn được xếp chồng lên nhau trong một máy tính – thông qua các cổng logic (logic gate) – và cách chúng được sử dụng để thực hiện toán học. Các cổng logic có hai đầu vào, thực hiện một thao tác logic trên chúng và trả về một đầu ra.
Điều này dẫn chúng ta đến câu trả lời đầy đủ hơn: toán học nhị phân dễ dàng hơn cho máy tính so với bất kỳ hệ thống nào khác. Logic Boolean tương ứng trực tiếp với các hệ thống nhị phân, với “True” và “False” được biểu diễn bằng “bật” và “tắt”. Các cổng logic trong máy tính của bạn hoạt động dựa trên logic Boolean: chúng nhận hai đầu vào và thực hiện một thao tác logic như AND, OR, XOR, v.v. Hai đầu vào dễ quản lý hơn nhiều. Nếu bạn vẽ biểu đồ các câu trả lời cho mỗi đầu vào có thể, bạn sẽ có một bảng chân trị (truth table).
Một bảng chân trị nhị phân hoạt động trên logic Boolean sẽ có bốn đầu ra có thể cho mỗi hoạt động cơ bản. Nhưng vì các cổng tam phân có ba đầu vào, một bảng chân trị sẽ có 9 hoặc nhiều hơn. Trong khi một hệ thống nhị phân có 16 toán tử có thể (2 ^ 2 ^ 2), thì một hệ thống tam phân sẽ có 19.683 (3 ^ 3 ^ 3). Mở rộng quy mô trở thành một vấn đề lớn bởi vì trong khi tam phân hiệu quả hơn, nó cũng phức tạp hơn theo cấp số nhân.
Ai biết được? Trong tương lai, chúng ta có thể thấy các máy tính tam phân trở thành hiện thực khi chúng ta đẩy các giới hạn của nhị phân xuống mức phân tử. Tuy nhiên, hiện tại, thế giới sẽ tiếp tục vận hành trên hệ nhị phân.
