Bạn Đã Biết Máy Tính Lưu Dữ Liệu Như Thế Nào Chưa
Bạn có biết rằng khi điện thoại gửi tin nhắn thì trên thực tế điện thoại gửi các số 0 và 1 đi thay vì các ký tự? Đối với bất cứ một chương trình máy tính nào thì lưu trữ dữ liệu trên máy là một công việc hết sức thông dụng. Ngay cả trong trường hợp bạn gán một giá trị cho biến thì lúc này máy ...
Bạn có biết rằng khi điện thoại gửi tin nhắn thì trên thực tế điện thoại gửi các số 0 và 1 đi thay vì các ký tự?
Đối với bất cứ một chương trình máy tính nào thì lưu trữ dữ liệu trên máy là một công việc hết sức thông dụng. Ngay cả trong trường hợp bạn gán một giá trị cho biến thì lúc này máy tính cũng đã thực hiện việc lưu trữ dữ liệu (tạm thời) trong nội tại của hệ thống. Mặc dù vậy thì không ít các lập trình viên trong số chúng ta vẫn chưa chú ý nhiều tới cách má tính lưu trữ dữ liệu như thế nào.
Có nhiều phương pháp lưu trữ dữ liệu khác nhau, tuy nhiên tất cả đều thuộc một trong hai kiểu đó là lưu tạm thời (temporary) và lưu ổn định (persistent). Việc lưu tạm thời thường lưu dữ liệu trên bộ nhớ tạm (RAM) của hệ thống và ngược lại việc lưu ổn định sẽ lưu dữ liệu trên ổ cứng (di động hoặc cố định) hoặc các thiết bị USB. Trong chương trình các loại dữ liệu được sử dụng có thể khác nhau như dữ liệu kiểu số, kiểu chữ, kiểu mảng, kiểu object.... Dù vậy thì ở cấp độ thấp nhất máy tính sẽ lưu trữ liệu sử dụng các bit và byte.
Bit Là Gì
Bít là đơn vị lưu trữ nhỏ nhất trong máy tính. Một bit chỉ lưu trữ được một trong hai số 0 hoặc 1.
Nếu bạn từng tìm hiểu về nguyên tố hoá học bạn có thể hình dung một bit giống như một hạt nguyên tử, loại hạt nhỏ nhất cấu thành nên vật chất xung quyanh chúng ta.
Hệ thống máy tính thực chất chỉ có thể hiểu được hai số 0 và 1 hay hệ nhị phân, điều này là bởi vì cấu trúc các chip máy tính chỉ sử dụng một trong hai trạng thái là on và off. Do đó các dữ liệu thuộc các kiểu khác nhau xuất hiện trong chương trình đều được chuyển hoá về kiểu dữ liệu nhị phân trước khi lưu trữ trên máy sử dụng các bit.
Bạn có biết rằng khi điện thoại gửi tin nhắn thì trên thực tế điện thoại gửi các số 0 và 1 đi thay vì các ký tự?
Khi sử dụng kiểu mã hoá ký tự là UTF-8 thì chữ Asẽ được biểu diễn bởi số 65. Khi lưu trữ ký tự này máy tính sẽ chuyển đổi con số 65 về hệ nhị phân trước khi lưu (vào bộ nhớ tạm thời RAM hoặc ổ cứng, USB...):
a <=> 65 <=> 1000001
Do mỗi bit chi lưu trữ một trong hai số 0 hoặc 1 nên khi làm việc dù chỉ với các dữ liệu có dung lượng nhỏ như các ký tự a, b, c... thì cũng đòi hỏi một số lượng lớn các bit tham gia. Với kiểu UTF-8 thì đối mỗi một ký tự sẽ thông thường yêu cầu sử dụng 8 bit (8 số 0 hoặc 1) đề lưu trữ. Vì vậy việc chỉ sử dụng bit không thôi sẽ gặp không ít phiền toái. Các kiểu dữ liệu byte, kilobyte, megabyte... được ra đời sau đó.
Byte Là Gì
Byte về thực là một nhóm các số lượng bit được gom lại. Một byte bao gồm 8 bit.
Trong kiểu mã hoá ký tự UTF-8 mỗi một ký tự tương đương với một byte. Trên các máy tính hiện đại một đơn vị bộ nhớ (hay một địa chỉ) trên RAM sẽ được dùng để lưu trữ một byte dữ liệu. Ví dụ khi bạn gõ chữ Spring thì trên RAM các số sau sẽ được lưu trữ (tất nhiên sau khi đã chuyển về hệ nhị phân).
Một kilobyte tương đương với 1.000 byte. Tương tự như vậy một megabyte tương đương với 1.000 kilobyte...