Thứ Ba, 4 tháng 9, 2012

Thế giới của những Con số



Các khái niệm cơ bản

Bạn có biết rằng tất cả mọi người trong chúng ta có thể được xếp vào 1 trong 10 nhóm: nhóm 1 là những người đã quen thuộc với hệ thống số nhị phân, và nhóm 10 là những người không quen thuộc với nó. Có thể bạn không hiểu tại sao tôi lại nói là “1 trong 10 nhóm”? J Điều đó có nghĩa rằng bạn vẫn còn thuộc nhóm phía sau. Đừng lo lắng, nếu bạn muốn thuộc vào nhóm đầu tiên, để hiểu được “ngôn ngữ của máy tính”, hãy đọc tiếp các phần tiếp theo, chúng ta sẽ mô tả một cách vắn tắt về các khái niệm cơ bản (chỉ để chắc chắn rằng chúng ta có thể hiểu được nhau), các khái niệm này được sử dụng rất nhiều trong lĩnh vực điện tử máy tính. Còn nếu bạn đã nắm rõ, chúng ta cũng có thể coi đây như một cơ hội củng cố thêm kiến thức.

Thế giới của những con số

Toán học là một ngành khoa học cơ bản! Tạo hóa sinh ra vạn vật rất hợp lý và logic. Toàn thể vũ trụ có thể được con người mô tả chỉ với 10 chữ số. Tuy nhiên, điều này có thực sự đúng? Chúng ta có thực sự cần chính xác đến 10 chữ số? Tất nhiên là không, đây chỉ là một vấn đề của thói quen mà thôi. Hãy nhớ lại các bài học từ thời tiểu học.
Ví dụ, số 764 có nghĩa là:
4 đơn vị, 6 hàng chục và 7 hàng trăm.
Rất đơn giản!  
Và nó có thể được mô tả một cách phức tạp hơn:
4 + 60 + 700.
Thậm chí còn phức tạp hơn nữa:
4 * 1 + 6 * 10 + 7 * 100.
Có thể nhìn nhận các con số này một cách khoa học hơn không? Câu trả lời là có:
4 * 10 ^ 0 + 6 * 10 ^ 1 + 7 * 10 ^ 2.
Điều này có ý nghĩa gì? Tại sao chúng ta có thể hiểu và sử dụng chính xác ngay lập tức với những con số như: 100, 101 và 102? Tại sao các con số này lại liên quan mật thiết với số 10? Đó là bởi vì chúng ta sử dụng 10 chữ số khác nhau (0, 1, 2, ... 8, 9) để biểu diễn mọi thứ. Nói cách khác, bởi vì chúng ta sử dụng cơ số 10, tức là hệ thống số thập phân. Và qua thời gian sử dụng lâu dài, chúng ta đã quen, đến mức không cần thiết phải biểu diễn lại theo các cách “phức tạp” như trên mà ta vẫn dễ dàng hiểu được chúng.


Hệ thống số nhị phân

Vậy điều gì sẽ xảy ra nếu thay vì sử dụng đến 10 chữ số, chúng ta chỉ sử dụng 2 chữ số (0 và 1 chẳng hạn)? Với 2 chữ số bạn làm sao diễn tả một vật này nặng hơn vật kia 3 lần, hay 5 lần? Hoặc bạn có nghĩ mình sẽ bị hạn chế nhiều trong việc so sánh kích thước của 2 vật chẳng hạn, thay vì có nhiều mức để so sánh, lần này chúng ta chỉ có thể đưa ra 2 mức hoặc là “1”, hoặc là “0” ? J Sẽ không có gì hạn chế, không có gì vướng mắc cả, chúng ta cũng sẽ tiếp tục sử dụng 2 chữ số này theo cùng một cách như ở trên. Cách tốt nhất để hiểu là lấy ví dụ.
Ví dụ: 11011010.
Để hiểu ý nghĩa của dãy số này, theo cùng một logic như trong ví dụ trước, ta hãy biểu diễn nó lại theo cách “phức tạp” hơn một chút. Ghi nhớ rằng giờ đây chúng ta chỉ sử dụng có 2 chữ số (nên gọi là hệ thống số nhị phân).


Rõ ràng, ở đây chúng ta có cùng một giá trị (218 – thập phân) được biểu diễn trong hai cách khác nhau (dạng nhị phân là  11011010 – và dạng thập phân là 218). Sự khác biệt duy nhất là số các chữ số cần thiết cho việc biểu diễn 1 giá trị. Một chữ số “2” được sử dụng để biểu diễn số 2 trong hệ thập phân, trong khi đó cần hai chữ số “10” để viết con số đó trong hệ thống nhị phân. 
         Đến đây bạn có đồng ý với tôi rằng có 10 nhóm người như tôi đã chỉ ra ở đầu không? J Chào mừng bạn đến với thế giới của số học nhị phân! Liệu bạn có thắc mắc rằng, trong khi chúng ta không quen sử dụng số nhị phân, vậy nó được quan tâm đến để làm gì? Lý do là đây:
Trừ điều kiện trong phòng thí nghiệm có sự kiểm soát chặt chẽ, thì các mạch điện tử phức tạp nhất cũng khó có thể xác định chính xác sự khác biệt giữa 2 mức tác động nào đó (ví dụ là 2 mức giá trị điện áp chẳng hạn) nếu các mức này là quá nhỏ (nhỏ hơn một vài Volt). Nguyên nhân là do nhiễu và một điều quan trọng nữa là "môi trường làm việc thực sự" (không thể đoán trước sự thay đổi của điện áp cung cấp, sự thay đổi nhiệt độ, sai số của các giá trị, ..v..v).
Nếu bạn nghĩ đến cách khắc phục là tăng mức tác động của điện áp lên, hãy tưởng tượng một máy tính sẽ hoạt động dựa trên các số thập phân bằng cách công nhận 10 chữ số theo các mức sau: 0 = 0V, 1 = 5V, 2 = 10V, 3 = 15V, 4 = 20V ... 9 = 45V? Liệu chúng ta sẽ phải thiết kế một khối Pin đồ sộ cỡ nào?
Một giải pháp đơn giản hơn nhiều là sử dụng hệ nhị phân, trong đó chỉ có 2 mức: 0 chỉ ra rằng “không có điện áp” và 1 chỉ ra rằng “có điện áp”. Tại sao lại là “0” và “1” mà không là các ký hiệu khác? Thực ra đây chỉ là quy ước, và nó cũng thuận tiện hơn để ta biểu diễn. Thay vì phải diễn tả là “không có điện áp” hoặc “có điện áp”, ta chỉ đơn giản là viết “0” hoặc là “1”. Chúng cũng được gọi là mức logic không (0) và mức logic một (1) mà bất kỳ một thiết bị điện tử nào cũng dễ dàng phân biệt được chúng. Trong các thiết bị này, tất cả các số đều được biểu diễn chỉ bằng 2 con số (1 và 0), tương ứng với có, hoặc không có điện áp. Tất nhiên, chúng ta chỉ đang nói về điện tử kỹ thuật số.

Hệ thống Số Hexadecimal (thập lục phân)

Vào thời nguyên thủy của kỷ nguyên máy tính, rất dễ dàng nhận ra rằng mọi người đều rất khó khăn trong việc xử lý các số nhị phân. Vì lý do này, một hệ thống số mới nữa đã được thành lập, một hệ thống số sử dụng 16 chữ số khác nhau. Mười chữ số đầu tiên là 10 chữ số tương tự như trong hệ thập phân chúng ta sử dụng (0, 1, 2, 3, ... 9), nhưng còn có thêm sáu chữ số nữa. Để tránh tạo thêm các ký tự mới, sáu ký tự đầu của bảng chữ cái là A, B, C, D, E và F đã được sử dụng. Một hệ thống số thập lục phân – Hexa bao gồm 16 chữ số: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F đã được thành lập. Mục đích của sự kết hợp có vẻ kỳ lạ này là gì? Hãy nhìn nhận một cách tổng quan, chúng đều có liên hệ với hệ thống số nhị phân.


Giá trị lớn nhất có thể được đại diện bởi 4 chữ số nhị phân là số 1111. Nó tương ứng với số 15 trong hệ thập phân. Còn trong hệ thập lục phân lại được đại diện chỉ bởi một chữ số F. Đó cũng là số có 1 chữ số lớn nhất trong hệ thập lục phân. Bạn có thấy mối liên hệ chặt chẽ ở đây không? Tương tự như thế, giá trị lớn nhất có thể đại diện bởi 8 chữ số nhị phân (1111 1111) cũng là cùng một giá trị mà 2 chữ số thập lục phân lớn nhất biểu diễn được (FF), đều là 255 trong hệ thập phân. Lưu ý rằng các máy tính sử dụng 8-chữ số trong hệ nhị phân.

Mã BCD

BCD là hệ thống số nhị phân dùng để biểu diễn các số thập phân. Nó được sử dụng để cho phép các mạch điện tử giao tiếp với nhau giữa 2 hệ thống số thập phân và nhị phân. Nó bao gồm 4 chữ số nhị phân, biểu diễn cho mười chữ số đầu tiên (0, 1, 2, 3 ... 8, 9). Mặc dù 4 chữ số có thể cho ta một tổ hợp 16 kết quả, tức là chúng có thể biểu diễn cho 16 giá trị khác nhau, nhưng ta chỉ cần sử dụng 10 tổ hợp đầu tiên để biểu diễn cho 10 chữ số thập phân.

Chuyển đổi giữa các hệ thống số

Hệ thống số nhị phân là sử dụng phổ biến nhất trong máy tính, còn hệ thống số thập phân là dễ hiểu nhất, trong khi đó hệ thống số thập lục phân là sự trung gian giữa 2 hệ thống số trên. Vì vậy, một vấn đề quan trọng là làm sao để chuyển đổi một số từ hệ này sang hệ khác, làm thế nào để biến một loạt các số 0, số 1 thành các giá trị dễ hiểu đối với chúng ta.

Chuyển đổi từ số nhị phân sang thập phân

Mỗi chữ số trong một số nhị phân có giá trị khác nhau tùy thuộc vào vị trí của nó trong số đó.
Để dễ hiểu, ta sẽ lấy 1 ví dụ tương tự về 1 số thập phân:
99
Số 9 thứ nhất từ phải qua đại diện cho giá trị là:
9 * 10^0 = 9
Số 9 còn lại có giá trị là:
9 * 10^1 = 90
Số nhị phân cũng như vậy, ngoại trừ việc mỗi vị trí trong số nhị phân chỉ có thể là 0 hoặc 1, và giá trị của nó cũng có thể dễ dàng xác định bởi vị trí của nó tính từ bên phải qua. Để thực hiện việc chuyển đổi một số nhị phân sang thập phân, ta cần nhân các trọng số với những chữ số (0 hoặc 1) tương ứng với trọng số đó, và cộng các kết quả lại. Rất đơn giản. Hãy xem ví dụ này:

110 = 0 * 2^0 + 1 * 2^1 + 1 * 2^2 = 6

Cần lưu ý rằng đối với một số thập phân từ 0 đến 3, bạn chỉ cần 2 chữ số nhị phân để biểu diễn chúng. Đối với một dải giá trị lớn hơn, bạn phải cần số chữ số nhị phân nhiều hơn. Như vậy, đối với các số từ 0 đến 7 bạn cần 3 chữ số, các số từ 0 đến 15 cần 4 chữ số ... Một cách tổng quát, giá trị lớn nhất mà một số nhị phân có n chữ số có thể biểu diễn được tính bằng 2^n và trừ đi 1 đơn vị, vì chúng ta bắt đầu đếm từ số 0.
Ví dụ, nếu n = 4:

2^4 - 1 = 16 - 1 = 15 <=> 1111 nhị phân.

Đây là giá trị lớn nhất mà 4 chữ số nhị phân biểu diễn được.
Theo đó, bằng cách sử dụng 4 chữ số nhị phân ta có thể biểu diễn cho các số thập phân từ 0 đến 15.

Chuyển đổi từ số thập lục phân sang thập phân

Để thực hiện chuyển đổi một số thập lục phân sang thập phân, mỗi chữ số thập lục phân được nhân với trọng số tương ứng với vị trí của nó. Ví dụ:


Chuyển đổi từ số thập lục phân sang nhị phân

Sự chuyển đổi này hết sức dễ dàng, thậm chí bạn không cần phải thực hiện một phép tính phức tạp nào cả. Chỉ đơn giản là chúng ta thay thế mỗi chữ số thập lục phân bằng 4 chữ số nhị phân thích hợp. Ví dụ:

Phân biệt các hệ thống số

Các hệ thống số thập lục phân cùng với hệ thống số nhị phân và số thập phân rất quan trọng và ta sử dụng chúng rất nhiều. Rất dễ dàng để thực hiện sự chuyển đổi bất kỳ giữa các hệ thống số. Tuy nhiên, những chuyển đổi này có thể gây nhầm lẫn. Ví dụ, nếu chúng ta nói "có 110 sản phẩm trên dây chuyền lắp ráp" thì bạn sẽ hiểu thế nào? Tùy thuộc vào hệ thống số ở đây là nhị phân, thập phân hoặc thập lục phân, kết quả có thể là 6, 110 hoặc 272 sản phẩm! Do đó, để tránh sự hiểu nhầm, các tiền tố và hậu tố khác nhau được thêm vào các con số. Tiền tố $, 0X hoặc hậu tố H đánh dấu các số thuộc hệ số thập lục phân. Ví dụ:
1 số thập lục phân 10AF có thể được viết là $10AF, 0X10AF hoặc 10AFH.
 Tương tự như vậy, số nhị phân thường có hậu tố là % hoặc 0B, trong khi các số thập phân có hậu tố là D.
Cuối cùng, ta liệt kê lại các số từ 0-255 theo cả 3 hệ (thập phân, nhị phân, và Hexa):


0 nhận xét:

Đăng nhận xét