Hệ đếm nào mã máy tính có thể xử lý được

Hệ nhị phân – được xem như một chuỗi chỉ có những số 0 và 1 và thường được gắn liền với những chiếc máy tính. Nhưng tại sao lại như vậy? Tại sao máy tính không dùng hệ thập phân thay vì chuyển tất cả sang hệ nhị phân? Sẽ không hiệu quả hơn khi dùng các hệ đếm cao hơn sao? Vì nếu dùng hệ nhị phân thì có vẻ như nó sẽ chiếm nhiều không gian lưu trữ hơn [nhiều khoảng trống hơn]

Tôi đã từng được hỏi câu này bởi cả những người chuyên và không chuyên trong ngành công nghệ thông tin, nhiều hơn cả là những người bán chuyên hoặc không nằm trong nghề. Nhưng dù câu hỏi đến từ ai thì câu trả lời đều hết sức đơn giản. 

Thế nào là kỹ thuật số [digital]?

Trước tiên ta cần hiểu thế nào thuật ngữ là kỹ thuật số [digital]. Một máy tính kỹ thuật số hiện đại, trái ngược với một máy analog thời cũ, là hoạt động dựa trên nguyên lý bao gồm hai trạng thái “bật” hoặc “tắt“. Điều này tương ứng một cách trực tiếp đến trạng thái hiện diện hay vắng mặt của dòng điện. Trạng thái “bật” được gán cho số 1 trong khi trạng thái “tắt” là cho số 0.

Thuật ngữ “nhị phân” [binary] ám chỉ “hai”. Do đó một hệ nhị phân là hệ đếm dựa hoàn toàn chỉ trên hai con số là 0 và 1 mà không hề có sự hiện diện của bất kỳ con số nào khác. Đây là cơ sở để chuỗi nhị phân được hình thành. Mỗi số nhị phân đơn lẻ chỉ bao gồm hoặc là 0 hoặc là 1, khi ấy ta gọi nó là “bit“. Mỗi bit này tương ứng với một công tắc duy nhất trong một mạch điện. Kết hợp càng nhiều công tắc lại với nhau ta càng có thể làm ra nhiều số hơn. Vì vậy, thay vì chỉ một bit, ta gộp chúng lại thành một nhóm gồm 8 bit để tạo thành một “byte“. Byte ở đây là đơn vị cơ bản của bộ nhớ [storage], nhiều bytes ta sẽ có kilobytes, megabytes,… vốn là những thuật ngữ bạn thường hay nghe mỗi khi nhắc đến dung lượng của máy tính hay điện thoại. Kilobytes thì lớn hơn byte 1024 lần trong khi Megabytes thì lớn hơn Kylobytes 1024 lần.

Nhị phân dùng nhiều bộ nhớ hơn là hệ thập phân?

Nhìn thoáng qua có vẻ như hệ nhị phân tiêu tốn nhiều không gian hơn để biểu thị cùng một con số nếu đem so với hệ thập phân. Ví dụ như số 150 trong hệ thập phân chỉ gồm 3 số thì trong hệ nhị phân bạn phải dùng 8 chữ số là 10010110. Lập luận này sẽ trở nên vô dụng khi chúng ta cần hiển thị con số này lên màn hình máy tính, vì tất cả chúng đều được lưu trong một hệ nhị phân. Lý do duy nhất ta thấy rằng 150 “nhỏ hơn” so với 10010110 là khi ta viết nó trên một tờ giấy hay nhìn thấy nó hiển thị trên màn hình.

Càng gia tăng hệ cơ số thì ta càng cần ít chữ số để biểu thị cho một số nào đó, và ngược lại. Nhưng chính điều này lại đi ngược lại với nguyên tắc hoạt động của máy tính, đó chính là một mạch điện tập hợp những bit chỉ biêu thị một trong hai trạng thái là “bật” hoặc “tắt”. Bạn khó lòng có thể kiếm ra một trạng thái nào khác nằm giữa “bật” và “tắt” để có thể dùng một hệ đếm cao hơn [trừ trường hợp ta xét đến máy tính lượng tử sẽ được đề cập sau].

Hệ bát phân [octal] và thập lục phân [hex] thì sao?

Hệ bát phân và thập lục phân chẳng qua là một “lối tắt” để biểu diễn hệ nhị phân mà thôi. Cả hai hệ này đều biểu diễn thông qua một số nguyên lần lũy thừa của 2 [octal là lũy thừa 3 trong khi hex là lũy thừa 4]. 3 chữ số trong hệ bát phân = 2 chữ số trong hệ thập lục phân = 8 chữ số trong hệ nhị phân = 1 byte. Điều này tạo thuận lợi hơn cho dân lập trình khi biểu thị mọi thứ trong môi trường 32-bit, thường dùng là những giá trị màu 32-bit, ví dụ như FF00EE99 [thay vì dùng 11111111000000001110111010011001]. 

Những máy tính không dùng hệ nhị phân

Hãy thử tưởng tượng một chiếc máy tính nào đó dựa trên hệ thập phân. Khi ấy sẽ có 10 trạng thái khả dĩ của dòng điện. Và mọi thứ sẽ được biểu diễn bởi những chữ số từ 0 đến 9. Điều này khó có thể xảy ra với cấu tạo của những máy tính ngày nay nhưng hoàn toàn có thể đối với những máy tính lượng tử sẽ được đề cập sau.

Vậy hệ thống này có hiệu quả hơn hay không? Giả sử những công tắc của hệ máy tính nhị phân chiếm cùng 1 khoảng trống vật lý với những công tắc hệ đếm cơ số 10. Khi ấy những máy tính chạy hệ 10 này sẽ hoạt động với năng suất cao hơn là điều hiển nhiên. Vì thế mặc dù câu hỏi liệu rằng hệ nhị phân sẽ “không hiệu quả” là có vẻ đúng trong lý thuyết nhưng về mặt thực tế sử dụng ngày nay thì không.

Tại sao tất cả các máy tính hiện đại ngày nay đều sử dụng hệ nhị phân?

Nói quá trời dài dòng từ đầu bài đến giờ, vậy đâu là câu trả lời? Câu trả lời ngắn gọn là do máy tính ngày nay chưa được thiết kế để có thể nhận ra nhiều hơn 2 tín hiệu [trong khi máy tính lượng tử thì chưa được bán]. Hệ nhị phân được chọn bởi vì nó khá dễ dàng khi phân biệt sự hiện diện hay vắng mặt của 1 tín hiệu điện tại 1 thời điểm nào đó. Điều này càng trở nên đáng giá khi máy tính phải xử lý hàng tỷ tỷ các tín hiệu này mỗi giây. Nếu dùng những hệ đếm cơ số khác trên những hệ thống máy này thì sẽ thật điên rồ, vì khi khi ấy máy tính phải tốn công chuyển qua chuyển lại giữa các hệ cơ số. Đó là lý do vì sao trên máy-được-thiết-kế-cho-nhị-phân thì chỉ nên dùng cho nhị phân mà thôi.

Bài viết được Math2IT trích dịch từ bài viết của Iyosha Blinnikov.

Dữ liệu cũng là một khái niệm rất trừu tượng, là thông tin đã được đưa vào máy tính.

1. Khái niệm thông tin và dữ liệu

- Thông tin là một khái niệm rất trừu tượng. Thông tin được hiểu như là sự thông báo, trao đổi, giải thích về một đối tượng nào đó và thường được thể hiện dưới dạng các tín hiệu như chữ số, chữ viết, âm thanh, dòng điện... Chẳng hạn thông tin về kết quả học tập của học sinh được giáo viên chủ nhiệm ghi trong sổ liên lạc giúp cho các bậc phụ huynh biết về tình hình học tập của con em mình.

Nói một cách tổng quát, thông tin là sự hiểu biết của con người về một thực thể nào đó, có thể thu thập, lưu trữ, xử lí được. 

- Dữ liệu cũng là một khái niệm rất trừu tượng, là thông tin đã được đưa vào máy tính. Dữ liệu sau khi tập hợp lại và xử lí sẽ cho ta thông tin. Hay nói cách khác, dữ liệu là thông tin đã được mã hoá trong máy tính. Chẳng hạn, con số điểm thi là một dữ liệu hoặc con số về nhiệt độ trong ngày là một dữ liệu, hình ảnh về con người, phong cảnh cũng là những dữ liệu,...

2. Đơn vị đo thông tin

Đơn vị cơ bản đo thông tin là bit [Binary digit]. Bit là dung lượng nhỏ nhất tại mỗi thời điểm có thể ghi được hoặc là kí hiệu 0 hoặc là kí hiệu 1. Hai kí hiệu này dùng để biểu diễn thông tin trong máy tính.

Ngoài đơn vị bit nói trên, đơn vị đo thông tin thường dùng là byte và 1 byte bằng 8 bit. Ta có các đơn vị đo thông tin như sau: 

1 byte

= 8 bit.

1 kilôbai [kB]

= 1024 byte

= 210 byte.

1 mêgabai [MB]

= 1024 kB

= 210kB.

1 gigabai [GB]

= 1024 MB

= 210MB.

1 têrabai [TB]

= 1024 GB

= 210GB.

1 pêtabai [PB]

= 1024 TB

= 210TB.

3. Các dạng thông tin

Chúng ta, có thể phân loại thông tin thành hai loại: số [số nguyên, số thực...] và phi số [văn bản, âm thanh, hình ảnh...]

4. Mã hoá thông tin trong máy tính

Muốn máy tính xử lí được, thông tin phải được biến đổi thành một dãy bit. Cách biến đổi như vậy được gọi là mã hoá thông tin.

Để mã hoá thông tin dạng văn bản người ta dùng bộ mã ASCII sử dụng tám bit để mã hoá kí tự. Trong bộ mã ASCII, các kí tự được đánh số từ 0 đến 255 và các kí hiệu này được gọi là mã ASCII thập phân của kí tự.

Người ta đã xây dựng bộ mã Unicode sử dụng 16 bit để mã hoá vì bộ mã ASCII chỉ mã hoá được 256 kí tự, chưa đủ để mã hoá đồng thời các bảng chữ cái của các ngôn ngữ trên thế giới. Bộ mã Unicode có thể mã hoá được 65536 kí tự khác nhau. Nó cho phép thể hiện trong máy tính văn bản của hầu hết các ngôn ngữ trên thế giới bằng một bộ mã. Đây là bộ mã chung để thể hiện các văn bản hành chính.

Thông tin tuy có nhiều dạng khác nhau nhưng đều được lưu trữ và xử lí trong máy tính chỉ ở một dạng chung đó là mã nhị phân.

5. Biểu diễn thông tin trong máy tính

a] Biểu diễn thông tin loại số

• Hệ đếm: Hệ đếm được hiểu như tập các kí hiệu và qui tắc sử dụng tập kí hiệu đó để biểu diễn và xác định giá trị các số. Có hệ đếm phụ thuộc vị trí và hệ đếm không phụ thuộc vị trí.

Hệ đếm La Mã là hệ đếm không phụ thuộc vị trí, đó là các chữ cái: I=1; V=5; X=10; L=50; C=100; D=500; M=1000; Hệ này thường ít dùng, chỉ dùng để đánh số chương, mục, đánh số thứ tự...

Các hệ đếm thường dùng là các hệ đếm phụ thuộc vị trí. Bất kì một số tự nhiên b nào lớn hơn 1 đều có thể chọn làm cơ số cho một hệ đếm. Trong các hệ đếm này, số lượng các kí hiệu được sử dụng bằng cơ số của hệ đếm đó. Các kí hiệu được dùng cho hệ đếm đó có các giá trị tương ứng: 0, 1,..., b-1.

i] Hệ thập phân [hệ cơ số 10] sử dụng tập kí hiệu gồm 10 chữ số: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Giá trị của mỗi chữ số phụ thuộc vào vị trí của nó trong biểu diễn.

ii] Các hệ đếm thường dùng trong Tin học

-  Hệ nhị phân [hệ cợ số 2] chỉ dùng 2 kí hiệu là chữ số 0 và chữ số 1.

Ví dụ: 1012 = Ix22 + 0x21 + 1x2°= 510.

-  Hệ cơ số mười sáu [Hệ Hexa], sử dụng các kí hiệu: 0, 1,2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, trong đó A, B, C, D, E, F có giá trị tương ứng là 10, 11, 12, 13, 14, 15 trong hệ thập phân.

iii] Biểu diễn số nguyên

Một byte biểu diễn được số nguyên trong phạm vi -127 đến 127.

iv] Biểu diễn số thực

Dùng dấu chấm[.] để ngăn cách giữa phần nguyên và phần thập phân. Mọi số thực đều có thể biểu diễn dưới dạng ±M X 10+K [dạng dấu phẩy động].

b] Biểu diễn thông tin loại phi số

• Biểu diễn văn bản: Dùng một dãy bit để biểu diễn một kí tự [mã ASCII của kí tự đó]

• Các dạng khác: xử lí âm thanh, hình ảnh... thành dãy các bit

• Nguyên lí mã hoá nhị phân

 Thông tin có nhiều dạng khác nhau như số, văn bản, hình ảnh, âm thanh... Khi dựa vào máy tính, chúng đều biến đổi thành dạng chung - dãy bit. Dãy bit là mã nhị phân của thông tin mà nó biểu diễn.

Loigiaihay.com

Video liên quan

Chủ Đề