Trả lời nhanh
Bản chất của quá trình mã hóa thông tin là biến đổi thông tin từ dạng con người quan sát được (chữ, số, hình ảnh, âm thanh) thành dãy bit gồm các số 0 và 1 theo một quy ước thống nhất, để máy tính lưu trữ, xử lý và truyền đi. Đây không phải là việc đổi dãy nhị phân sang hệ đếm khác, cũng không chỉ là việc nhập dữ liệu vào máy.
Vì sao máy tính cần mã hóa thông tin?
Máy tính được chế tạo từ các linh kiện điện tử chỉ phân biệt được hai trạng thái, chẳng hạn có điện và không có điện. Hai trạng thái này được ghi lại bằng hai chữ số 0 và 1, mỗi chữ số gọi là một bit.
Vì vậy, mọi loại thông tin muốn “đi vào” máy tính đều phải được quy đổi về dãy bit. Việc quy đổi đó chính là mã hóa. Chiều ngược lại, từ dãy bit trở về chữ, ảnh, âm thanh để người dùng xem được, gọi là giải mã.
Mã hóa gồm những bước nào?
- Xác định loại thông tin: văn bản, số, hình ảnh hay âm thanh.
- Chọn quy ước mã hóa: ví dụ bảng mã ASCII hoặc Unicode cho ký tự, hệ nhị phân cho số.
- Chuyển từng phần tử thông tin thành dãy bit: mỗi ký tự, mỗi điểm ảnh, mỗi mẫu âm thanh có một dãy bit riêng.
- Lưu trữ hoặc truyền đi: máy tính xử lý dãy bit này, khi cần hiển thị thì giải mã trở lại.
Ví dụ minh họa cho từng loại thông tin
| Loại thông tin | Cách mã hóa | Ví dụ |
|---|---|---|
| Số nguyên | Đổi sang hệ nhị phân | 13 được ghi thành 1101 |
| Ký tự | Mỗi ký tự có một mã trong bảng mã | Chữ H có mã 72, ghi thành 01001000 |
| Hình ảnh | Chia thành điểm ảnh, mỗi điểm ảnh mã hóa màu sắc | Ảnh đen trắng: 0 là điểm đen, 1 là điểm trắng |
| Âm thanh | Lấy mẫu cường độ sóng theo thời gian rồi mã hóa từng mẫu | Tệp nhạc, tệp ghi âm |
Hãy để ý rằng với số nguyên, việc đổi sang hệ nhị phân là một cách mã hóa. Nhưng với chữ, ảnh hay âm thanh thì phải có thêm quy ước riêng, nên không thể nói mã hóa chỉ là đổi hệ đếm.
Phân biệt mã hóa với các khái niệm dễ nhầm
Mã hóa khác với đổi hệ đếm
Đổi hệ đếm (ví dụ từ nhị phân sang thập phân hay thập lục phân) chỉ là cách viết khác của cùng một con số. Dữ liệu vẫn là số, chưa hề có thêm thông tin nào được chuyển thành bit. Trong khi đó, mã hóa đưa cả những thứ không phải số như chữ cái, hình vẽ, tiếng nói về dạng dãy bit.
Mã hóa khác với nhập dữ liệu
Nhập dữ liệu là thao tác gõ phím, quét ảnh, thu âm để đưa thông tin vào máy. Sau khi nhập, thiết bị và phần mềm mới thực hiện mã hóa để thông tin có dạng dãy bit. Nói cách khác, nhập dữ liệu là bước đưa vào, còn mã hóa là bước biểu diễn.
Mã hóa thông tin khác với mật mã hóa
Trong tin học đại cương, “mã hóa” là biểu diễn thông tin bằng bit. Còn mật mã hóa (mã hóa để bảo mật) là việc làm cho dữ liệu khó đọc với người không có khóa. Hai ý này khác nhau, đề bài lớp 10 hỏi về nghĩa thứ nhất.
Mẹo nhớ nhanh
- Cứ nhắc đến “mã hóa” trong bài thông tin và dữ liệu thì nghĩ ngay: mọi thứ thành bit.
- Một dãy gồm n bit biểu diễn được 2n giá trị khác nhau. Với 8 bit là 256 giá trị.
- Muốn mã hóa nhiều loại ký tự hơn thì cần dãy bit dài hơn, vì vậy Unicode dùng nhiều bit hơn ASCII để chứa được tiếng Việt có dấu.
Lỗi sai thường gặp
- Cho rằng máy tính “hiểu” trực tiếp chữ cái. Thực ra nó chỉ xử lý các bit tương ứng với chữ đó.
- Nhầm giữa mã hóa với giải mã, hoặc với nén dữ liệu (nén làm giảm số bit, không đổi bản chất biểu diễn).
- Cho rằng mỗi ký tự luôn dùng đúng 8 bit trong mọi bảng mã.
Bài luyện tập nhỏ
- Biểu diễn số 13 trong hệ nhị phân. Đáp án: 13 = 8 + 4 + 1 nên là 1101.
- Viết dãy bit (8 bit) của chữ “i”, biết mã ASCII của “i” là 105. Đáp án: 105 = 64 + 32 + 8 + 1 nên là 01101001.
- Có thể dùng 3 bit để mã hóa 10 ký tự khác nhau không? Đáp án: Không, vì 3 bit chỉ có 23 = 8 giá trị.
Câu hỏi thường gặp
Mã hóa thông tin là gì?
Mã hóa thông tin là quá trình biến đổi thông tin (chữ, số, hình ảnh, âm thanh) thành dãy bit 0 và 1 theo một quy ước nhất định để máy tính lưu trữ và xử lý.
Vì sao máy tính chỉ dùng 0 và 1?
Vì linh kiện điện tử của máy tính phân biệt tin cậy nhất hai trạng thái (có hoặc không có tín hiệu điện), tương ứng với hai chữ số 1 và 0.
Đổi số từ hệ nhị phân sang hệ thập phân có phải là mã hóa không?
Không. Đó chỉ là đổi cách viết của cùng một số. Mã hóa là chuyển thông tin bất kỳ thành dãy bit.
Một dãy 8 bit biểu diễn được bao nhiêu giá trị?
Biểu diễn được 2^8 = 256 giá trị khác nhau, từ 00000000 đến 11111111.