Các thuật ngữ Bits, Bytes và Bits per Pixel nghĩa là gì?

Trong xã hội, nhiều thứ to hơn là tốt hơn, nhiều hơn là tốt hơn hay đơn giản tốt hơn là…tốt hơn. Không nơi nào mà những điều như vậy đúng hơn trong thế giới công nghệ. Hầu hết chúng ta có thể chưa biết các thuật ngữ “bytes”, “bits” thực sự nghĩa là gì nhưng đa phần mọi người đều có thể mường tượng rằng càng nhiều bits/bytes thì máy tính càng mạnh. Vậy chúng thật sự có nghĩa gì?

Trong tiếng Anh thì bits có nghĩa là những mẩu (bánh) và như vậy tương ứng ta có thể xem bytes là một cái bánh lớn chưa bị cắt thành những mẩu bánh nhỏ (bits). Bạn có thể xem hình minh họa như ở trên. Vậy không lẽ chúng là thức ăn thật sao? Chúng ta đang nói tới công nghệ mà? 

Hihi, thật ra ở trên chỉ là cách đặt tên của những nhà tin học đầu tiên khi phát minh (thật ra là phát hiện) ra bits và bytes mà thôi, với cách đặt tên như thế sẽ làm cho chúng ta dễ hình dung hơn về bits và bytes với ý nghiã thật sự của chúng.

OK, cứ xem bits và bytes dưới góc nhìn thức ăn đi, vậy không lẽ một buổi tiệc công nghệ mình chỉ thiết đãi mọi người toàn là bits với bytes không sao? Rủi có ai đó quá đói, họ cần một thứ nhiề hơn cả bits và bytes kia thì sao? Có cho họ không? Đáp án là có đấy. Đó chính là kilobytes, megabytes,…

Khi ta nói đến bits và bytes tức là ta đang nói đến những đơn vị bộ nhớ chứa đựng thông tin của máy tính. Hãy tưởng tượng bit như một chiếc hộp nhỏ chưa thông tin ở trong ổ cứng máy tính của bạn (hoặc cũng có thể là trong RAM).

Tám cái hộp nhỏ đó gộp lại (hay 8 bits) sẽ cho ta một bytes (1 bytes). 1000 bytes xấp xỉ bằng 1 kilobyte và 1000 kilobytes xấp xỉ 1 megabyte. Sở dĩ ta nói “xấp xỉ” là bởi vì 1000 là hơi nhỏ hơn thực tế, chính xác phải là con số 1024 (2^{10}). Tại sao lại là con số này mà không phải là con số khác? Mình sẽ trả lời cho câu hỏi này ở những đoạn tiếp theo.

Do đó, điều đầu tiên nên nhớ là 8 bits sẽ tạo thành 1 byte bởi vì nhóm 8 bits này hoặc những bội số lần của nó, ví dụ như 16 bits, 24 bits, 32 bits,…. sẽ tạo nên các blocks mà có thể hình thành nên hầu hết các ngôn ngữ máy tính ngày nay. Con số 8 được chọn một cách ngẫu nhiên ở thời điểm đầu ra mắt, vì đơn giản ở thời điểm đó với con số 8 này, người ta có thể biểu diễn được hầu hết các tín hiệu thông tin thời bấy giờ (con số, chữ cái, dấu câu,…).

Một điều khác cũng nên nhớ là, nếu bạn càng có nhiều bits thì bạn sẽ càng chứa được nhiều thông tin hơn (tất nhiên rồi, càng có nhiều hộp đựng, bạn sẽ càng chứa được nhiều đồ trong đó phải không nào?).   OK, bây giờ ta biết 8 bits sẽ tạo thành 1 byte, một block gồm 8 bit đó sẽ định hình nên hầu hết dữ liệu số ngày nay (hình ảnh, âm thanh,…). Tại sao lại như vậy? Hãy đọc bài viết Tại sao những số 0 và 1 lại có thể tạo nên âm nhạc, hình ảnh, video và mọi dữ liệu số khác?. Hằng hà sa số các ngôn ngữ máy tính ngày nay đều được xây dựng CHỈ TRÊN hai con số 0 và 1 đó (ấn tượng nhỉ!!).

Quay lại với câu hỏi ở trên, tại sao phải là 1024 bytes mới là 1 megabyte mà không phải là 1025 hay chỉ đơn giản là 1000?

Bởi vì máy tính được xây dựng dựa trên hệ nhị phân (chỉ gồm hai con số 0 và 1). Điều đó có nghĩa là ổ cứng hay bộ nhớ đệm sẽ được đo dựa trên một lũy thừa của 2. Trong khi đa phần chúng ta đều nghĩ rằng “kilo” là 1000. Vì thế các nhà khoa học máy tính muốn chọn một lũy thừa nào đó của 2 để sao cho nó gần với con số 1000 này nhất. Sau nhiều phép thử, chỉ có 2^{10} là ổn thỏa. Và giá trị của 2^{10} chính là con số 1024.

Bây giờ ta sẽ đi tìm hiểu tại sao bits có thể tạo nên những thứ như màu sắc và chữ cái?

Đó là do ngôn ngữ máy tính và thứ tự sắp xếp của các bits này sẽ quyết định xem chúng sẽ biến thành gì.

Để dễ hình dung, hãy so sánh ngôn ngữ máy tính với tiếng Anh. Bits trong ngôn ngữ máy tính tương ứng với các chữ cái trong tiếng Anh. 

Những chữ cái như H, T, R, E, A có thể tạo thành duy nhất ba chữ HEART, EARTH, HATER. Cùng một nhóm chữ cái nhưng với cách sắp xếp khác nhau sẽ cho ra những từ với ý nghĩa hoàn toàn khác nhau. 

Ý tưởng này được áp dụng hoàn toàn tương tự cho ngôn ngữ máy tính và bits. Chỉ đơn giản thay đổi giá trị 0 và 1 trong mỗi ô bit trong chuỗi 8 bits kia, bạn hoàn toàn có thể tạo ra rất nhiều thứ, trong đó có hình ảnh, âm thanh, màu sắc, chữ cái,…

Đây là một trang mà bạn có thể thử xem liệu tên của mình sẽ được biểu diễn như thế nào dưới dạng 0 và 1

Trong tiếng Anh, với 26 chữ cái có thể tạo ra hàng triệu từ. Trong ngôn ngữ máy tính cũng vậy, một nhóm 8 bits cũng rất quan trọng. Rất nhiều ngôn ngữ máy tính đều dựa trên nhóm 8 này để hình thành nên các chuỗi 8 bits, 16 bits, 24 bits,… Trong ngôn ngữ 8-bit, có một chuỗi gồm 8 ô vuông chứa đựng các con số 0 hoặc 1 để hình thành nên các số và chữ cái. Một ô chứa một trong hai con số 0 hoặc 1 cố định sẽ tạo thành một chuỗi 8-bit. Nhờ toán học, ta biết rằng có tối đa 2^8=256 chuỗi 8-bit này. Dưới đây là một ví dụ về chuỗi 8-bit trong việc hình thành nên các chữ cái.

Hoàn toàn tương tự cho một chuỗi màu 8-bit, với chuỗi màu này bạn có thể tạo được tối đa 256 màu, minh họa như bên dưới.

Tuy nhiên bạn nên nhớ rằng màu sắc là hằng hà sa số có thể tạo được. Chỉ việc nghĩ đến mày xanh thôi cũng có hàng tá màu xanh rồi. Vì thế sẽ thật quá sức nếu chỉ dùng một chuỗi 8-bit. Điều này dẫn ta dùng đến chuỗi 16-bit hay 32-bit. Đó là lý do vì sao bạn thường nghe các máy tính cài Windows hay Linux trên nền 64-bit lại cho hình ảnh sắc nét và đẹp hơn. Đơn giản vì chúng định nghĩa được nhiều màu sắc hơn, hiển thị một cách chân thực hơn. Còn về thuật ngữ “bits per pixel“, thật ra bất cứ thứ gì có càng nhiều “bits per” thì nó sẽ càng chi tiết và chất lượng. Thử tưởng tượng chiếc máy tính của bạn có dung lượng 500 GB (Gigabytes), khi đó bạn sẽ có một chiếc “mini-siêu” máy tính với 4,000,000,000,000 bits, một con số khủng khiếp để có thể chứa hầu hết các thông tin của bạn (nếu không muốn nói là dư). Vậy là bạn đã có một cái nhìn kha khá về các thuật ngữ này rồi đấy. Bài viết tham khảo từ trang eHow, PC.netWikipedia.

Math2IT

Math2IT

Đây là tác giả chung cho các bài viết không do trực tiếp tác giả cụ thể nào của Math2IT viết. Có thể đó là các bài dịch từ các bài viết nước ngoài hoặc các bài viết thiên về kỹ thuật và thông báo.

  • minh

    Bạn ơi, 1024 = 2^10 mà. Lấy 10 vì bit có 2 trạng thái 0 và 1 nên sẽ 2^1 or 2^10 cơ mà ko ai dùng 2^1 cả nên lấy 2^10

    • Math2IT

      Cảm ơn bạn, mình đã sửa lại bài viết. Mà đoạn giải thích 2^1 của bạn mình chưa rõ lắm.