VN512.comVN512
Con số thú vị và toán vui đời thường

Số 512 là gì: 8×8×8, 2 mũ 9 và vì sao máy tính chuộng lũy thừa của 2

512 bằng 8×8×8 và cũng bằng 2 mũ 9, nên nó xuất hiện khắp nơi trong máy tính: sector ổ cứng, dung lượng bộ nhớ, khoá mã hoá. Vì sao lại là lũy thừa của 2.

Top-down view of a wooden cube built from many small natural wood blocks on a light desk, a child hand placing one last block, soft window light, warm beige tones

512 là tích của ba số 8 (8 × 8 × 8) và cũng là 2 nhân với chính nó 9 lần (2 mũ 9). Vì máy tính đếm bằng hai trạng thái bật và tắt, mọi con số dạng 2 mũ n đều "tròn trịa" với máy, nên 512 xuất hiện ở rất nhiều chỗ: ổ cứng chia thành từng khối 512 byte, bộ nhớ 512 MB hay 512 GB, khoá mã hoá 512 bit, hàm băm SHA-512.

Cái tên VN512 cũng đến từ phép nhân ấy: 8 × 8 × 8, ba lần "tám". Bài này đi từ con số trên giấy sang chuyện vì sao máy tính mê lũy thừa của 2, vì sao một byte có 8 bit, vì sao ổ cứng ghi 1 TB mà máy chỉ báo khoảng 931 GB, và truyền thuyết hạt gạo trên bàn cờ 64 ô cho thấy lũy thừa của 2 lớn nhanh đến mức nào.

512 trên giấy: một khối lập phương và một dãy số 2

Hình dung một khối Rubik cỡ lớn mỗi cạnh 8 ô. Đếm số khối nhỏ bên trong (kể cả những khối bị che khuất), bạn được 8 × 8 = 64 khối ở mỗi tầng, nhân với 8 tầng ra 512 khối. Đó là lý do người ta gọi 512 là một số lập phương: nó là 8 mũ 3. Cùng họ với nó có 1, 8, 27, 64, 125, 216, 343, 512, 729, 1.000, là lập phương của các số từ 1 đến 10.

Vì 8 lại bằng 2 × 2 × 2, nên 512 = (2 × 2 × 2) × (2 × 2 × 2) × (2 × 2 × 2) = 2 mũ 9. Viết theo hệ nhị phân, hệ chỉ dùng hai chữ số 0 và 1, số 512 trông rất gọn: 1000000000, tức một chữ số 1 theo sau là chín chữ số 0. Giống như 1.000 trong hệ thập phân là 10 mũ 3, số 512 là "một nghìn" của hệ nhị phân bậc chín.

Thú vị hơn nữa, trong hệ bát phân (cơ số 8, từng được dùng nhiều trong lập trình máy tính đời đầu), 512 được viết là 1000. Một con số trông bình thường trong hệ đếm hằng ngày lại là số tròn trong cả hệ cơ số 2 lẫn cơ số 8. Chính vì thế những người làm máy tính gặp nó thường xuyên đến mức quen tay, còn người ngoài nghề thì chỉ thấy nó lặp lại trên vỏ hộp USB, thẻ nhớ, điện thoại mà không biết vì sao.

Vì sao máy tính đếm bằng 2

Bên trong con chip là hàng tỉ công tắc bán dẫn nhỏ (transistor), mỗi cái chỉ có hai trạng thái ổn định: có dòng điện hoặc không. Một trạng thái như vậy gọi là bit, viết là 0 hoặc 1. Ghép n bit lại, số tổ hợp khác nhau là 2 mũ n. Bảng dưới cho thấy mỗi khi thêm một bit, số giá trị biểu diễn được tăng gấp đôi:

Số bitSố giá trị khác nhauGặp ở đâu
12có hoặc không, đúng hoặc sai
7128bảng mã ASCII gốc (chữ Latinh không dấu, chữ số, dấu câu)
8256một byte; mỗi kênh màu đỏ, lục, lam trong ảnh thông thường
9512số ô địa chỉ khi dùng 9 bit; khối lập phương 8×8×8
101.024lý do "1 KB" từng được hiểu là 1.024 byte
1665.536số ký tự của một mặt phẳng Unicode
324.294.967.296số địa chỉ IPv4, khoảng 4,3 tỉ
64khoảng 18,4 tỉ tỉmáy tính và điện thoại "64 bit" hiện nay

Vì mọi thứ trong máy được đánh số bằng tổ hợp bit, kích thước hợp lý nhất của bộ nhớ, bộ đệm hay khối dữ liệu luôn là 2 mũ một số nào đó. Làm bộ nhớ 500 MB không phải là không được, nhưng mạch giải mã địa chỉ sẽ lãng phí: 9 bit địa chỉ đủ cho 512 ô, chỉ dùng 500 ô thì 12 ô bỏ không. Ba kênh màu 8 bit nhân lại cho 256 × 256 × 256 = 16.777.216 màu, con số "16,7 triệu màu" bạn thấy trên thông số màn hình.

Một byte có 8 bit: quy ước chứ không phải định luật

Ngày nay ai cũng coi 1 byte = 8 bit là hiển nhiên, nhưng thời máy tính đời đầu thì không. Có máy dùng nhóm 6 bit cho mỗi ký tự, đủ 64 tổ hợp cho chữ in hoa và chữ số; bảng mã ASCII công bố năm 1963 dùng 7 bit, đủ 128 ký tự cho tiếng Anh. Bước ngoặt là dòng máy IBM System/360 ra mắt năm 1964: nó chọn byte 8 bit làm đơn vị cơ bản, và vì dòng máy này phổ biến rộng, phần lớn ngành công nghiệp đi theo.

Vì sao 8 mà không phải 6 hay 7? Có mấy lý do thực dụng. 8 là lũy thừa của 2, nên chia đôi được gọn: một byte tách thành hai nửa 4 bit, mỗi nửa chứa vừa một chữ số thập phân từ 0 đến 9 (cách mã hoá này từng được dùng nhiều trong máy tính ngân hàng, kế toán). 256 tổ hợp lại đủ chỗ cho chữ thường, chữ hoa, chữ số, dấu câu và còn dư cho ký tự riêng của từng ngôn ngữ.

Tiếng Việt có dấu từng là bài toán khó với 256 ô ấy: một chữ "ệ" phải gánh cả dấu mũ lẫn dấu nặng, nên thời trước có nhiều bảng mã riêng, mở văn bản sai bảng mã là ra chữ lỗi. Unicode giải quyết bằng cách cho mỗi ký tự một mã riêng, và cách lưu phổ biến nhất là UTF-8 dùng từ 1 đến 4 byte cho mỗi ký tự. Chữ "a" chiếm 1 byte, còn chữ "ệ" chiếm 3 byte, nên cùng một câu, bản tiếng Việt có dấu nặng hơn bản không dấu.

512 xuất hiện ở những đâu quanh bạn

Khi đã biết 512 là 2 mũ 9, bạn sẽ nhận ra nó ở nhiều chỗ quen thuộc. Một số ví dụ có thật:

  • Sector ổ cứng: suốt nhiều thập niên, ổ đĩa cứng chia bề mặt thành các khối nhỏ nhất 512 byte, gọi là sector. Khoảng năm 2010 các hãng chuyển dần sang khối 4.096 byte (chuẩn thường gọi là Advanced Format, hay "4K"), nhưng nhiều ổ vẫn giả lập sector 512 byte để hệ điều hành cũ đọc được.
  • Dung lượng bộ nhớ: RAM 512 MB từng là cấu hình phổ thông của máy tính đầu những năm 2000; ngày nay là điện thoại và ổ SSD 512 GB. Các mức 64, 128, 256, 512 GB, 1 TB đều nhân đôi nhau vì chip nhớ được chế tạo theo lũy thừa của 2.
  • Mã hoá: khoá RSA dài 512 bit từng được coi là an toàn, cho tới năm 1999 một nhóm nghiên cứu phân tích được một số 512 bit ra thừa số nguyên tố; từ đó khoá ngắn như vậy bị coi là yếu. Họ hàm băm SHA-2 (công bố năm 2001) có bản SHA-512 cho chuỗi đầu ra dài 512 bit.
  • Trò chơi: trò ghép ô số 2048 nổi tiếng năm 2014 chính là trò cộng dồn lũy thừa của 2: 2, 4, 8, 16… 512, 1024, 2048.

Điểm chung của cả bốn: chúng đều là chỗ máy tính phải chia dữ liệu thành khối hoặc đánh số. Bất cứ khi nào có chuyện chia khối, lũy thừa của 2 thắng thế vì phép chia đôi lặp đi lặp lại là phép rẻ nhất với mạch điện tử.

Vì sao ổ "1 TB" mà máy chỉ báo khoảng 931 GB

Đây là thắc mắc phổ biến nhất liên quan đến lũy thừa của 2. Trong hệ đo lường quốc tế, tiền tố kilo nghĩa là 1.000, mega là 1 triệu, giga là 1 tỉ, tera là 1 nghìn tỉ. Nhưng 2 mũ 10 = 1.024 lại quá gần 1.000, nên dân máy tính từ lâu gọi 1.024 byte là "1 kilobyte", 1.024 kilobyte là "1 megabyte", cứ thế nhân lên. Sai lệch nhỏ ở bậc kilo (2,4%) lớn dần ở các bậc sau.

Nhà sản xuất ổ cứng ghi dung lượng theo nghĩa thập phân: 1 TB = 10 mũ 12 byte, tức đúng một nghìn tỉ byte. Một số hệ điều hành lại chia cho 1.024 ba lần rồi vẫn ghi đơn vị là "GB". Kết quả: 10 mũ 12 chia cho 2 mũ 30 ra khoảng 931,3. Không có byte nào bị mất, chỉ là hai bên dùng hai thước đo khác nhau mà gọi chung một tên. Thẻ nhớ 512 GB tính theo cách thứ hai sẽ hiện khoảng 476,8.

Để chấm dứt sự nhập nhằng, năm 1998 Uỷ ban Kỹ thuật Điện Quốc tế (IEC) đặt ra các tên riêng cho bậc nhị phân: kibibyte (KiB) = 1.024 byte, mebibyte (MiB), gibibyte (GiB), tebibyte (TiB). Một số hệ điều hành và phần mềm đã dùng cách ghi này, số khác vẫn dùng chữ GB theo nghĩa 1.024 mũ 3. Khi so dung lượng giữa các thiết bị, hãy xem máy đang dùng thước nào trước khi kết luận bị "thiếu".

Bàn cờ 64 ô và truyền thuyết hạt gạo

Bàn cờ vua có 8 × 8 = 64 ô, và một giai thoại lâu đời (thường gắn với nguồn gốc cờ ở Ấn Độ, không có tư liệu xác định niên đại) kể rằng người sáng chế trò chơi xin nhà vua phần thưởng là gạo: ô thứ nhất một hạt, ô thứ hai hai hạt, ô thứ ba bốn hạt, cứ ô sau gấp đôi ô trước cho đến ô thứ 64. Nhà vua tưởng là phần thưởng rẻ.

Tổng số hạt là 1 + 2 + 4 + … + 2 mũ 63 = 2 mũ 64 trừ 1, tức khoảng 18,45 tỉ tỉ hạt; con số chính xác có 20 chữ số và kết thúc bằng 615. Giả định mỗi hạt gạo nặng khoảng 25 miligam (ví dụ giả định để tính tròn), số gạo ấy nặng khoảng 461 tỉ tấn. Sản lượng gạo toàn thế giới mỗi năm chỉ vào cỡ nửa tỉ tấn, nên phải gom gần một nghìn năm thu hoạch của cả hành tinh mới đủ phần thưởng.

Riêng ô thứ 64 đã chứa 2 mũ 63 hạt, nhiều hơn tổng của 63 ô trước cộng lại. Đó là tính chất cốt lõi của tăng gấp đôi: mỗi bước mới luôn lớn hơn toàn bộ quá khứ. Con số 2 mũ 64 cũng chính là số địa chỉ một bộ xử lý 64 bit có thể đánh số về lý thuyết, nên lần tới khi nghe "máy 64 bit", bạn có thể nghĩ tới bàn cờ đầy gạo.

Hiểu nhầm hay gặp về 512 và lũy thừa của 2

"Máy 64 bit nhanh gấp đôi máy 32 bit." Không đúng. 64 bit chủ yếu cho phép đánh địa chỉ nhiều bộ nhớ hơn và xử lý số lớn trong một bước; tốc độ thực tế phụ thuộc vào kiến trúc chip, xung nhịp, bộ nhớ đệm và phần mềm. Nhiều tác vụ hằng ngày chạy gần như nhau trên hai loại.

"Hệ nhị phân do máy tính sinh ra." Ngược lại, ý tưởng có trước máy tính rất lâu. Nhà toán học Gottfried Leibniz đã viết một bài trình bày số học nhị phân năm 1703. Máy tính điện tử thế kỷ 20 chỉ là nơi ý tưởng này trở nên hữu dụng nhất.

"Dung lượng ghi trên hộp bị khai gian." Phần chênh giữa con số trên hộp và con số máy báo chủ yếu do cách đổi 1.000 hay 1.024 như đã nói; một phần nhỏ khác dành cho hệ thống tệp và phần mềm cài sẵn. Muốn kiểm tra hàng có đúng dung lượng không thì dùng phần mềm kiểm tra ghi đọc thật, không chỉ nhìn con số hiển thị.

"512 là con số đặc biệt hơn các số khác." Về toán học, 512 chỉ là một lũy thừa của 2 như 256 hay 1.024. Nó được gặp nhiều vì kỹ thuật chọn nó, không vì bản thân nó mang ý nghĩa gì bí ẩn. Tên VN512 lấy cảm hứng từ cách đọc 8×8×8, "ba lần tám", chỉ là một trò chơi chữ.

Câu hỏi thường gặp

512 có phải số chính phương không?

Không. Số chính phương là bình phương của một số nguyên, ví dụ 484 = 22 × 22 hay 529 = 23 × 23; 512 nằm giữa hai số này. 512 là số lập phương (8 mũ 3) và là lũy thừa của 2 (2 mũ 9). Vì số mũ 9 là số lẻ, căn bậc hai của 512 là một số vô tỉ, khoảng 22,63.

Vì sao gọi là "bit"?

Bit là chữ viết gọn của binary digit, nghĩa là chữ số nhị phân. Cách gọi này phổ biến từ bài báo về lý thuyết thông tin của Claude Shannon năm 1948, trong đó ông ghi nhận chữ bit do đồng nghiệp John Tukey đề xuất. Một bit là lượng thông tin nhỏ nhất: trả lời một câu hỏi có hoặc không.

1 KB là 1.000 hay 1.024 byte?

Theo chuẩn quốc tế, 1 kB (kilobyte) là 1.000 byte và 1 KiB (kibibyte) là 1.024 byte. Trong thực tế, nhiều phần mềm vẫn dùng chữ KB, MB, GB theo nghĩa 1.024, nên cùng một tệp có thể hiện hai con số hơi khác nhau. Sai lệch nhỏ ở cấp KB nhưng lên tới khoảng 7% ở cấp GB và 10% ở cấp TB.

Vì sao điện thoại có bản 128 GB, 256 GB, 512 GB mà không có 300 GB?

Chip nhớ flash được thiết kế theo lũy thừa của 2 vì mạch đánh địa chỉ dùng số bit nguyên. Ghép các chip lại, dung lượng tự nhiên nhảy theo cấp nhân đôi. Làm mức trung gian vẫn được bằng cách ghép chip khác cỡ, nhưng phức tạp và ít lợi, nên nhà sản xuất hầu như chỉ bán các nấc gấp đôi.

Có cách nào nhẩm nhanh lũy thừa của 2 không?

Nhớ mốc 2 mũ 10 = 1.024, xấp xỉ một nghìn. Từ đó 2 mũ 20 xấp xỉ một triệu, 2 mũ 30 xấp xỉ một tỉ, 2 mũ 40 xấp xỉ một nghìn tỉ. Muốn tính 2 mũ 33, lấy 2 mũ 30 (khoảng 1 tỉ) nhân 2 mũ 3 = 8, ra khoảng 8,6 tỉ. Cách này đủ để ước lượng mà không cần máy tính.

Số 8 có gì đặc biệt trong toán học?

Số 8 là lập phương nhỏ nhất lớn hơn 1 (2 mũ 3) và là số Fibonacci thứ sáu (dãy 1, 1, 2, 3, 5, 8). Hệ bát phân cơ số 8 từng tiện cho lập trình viên vì mỗi chữ số bát phân ứng đúng với ba bit. Ngoài những điều ấy, số 8 không mang tính chất kỳ bí nào; cảm giác "đẹp" của nó chủ yếu đến từ văn hoá.

Cần tư vấn cụ thể cho trường hợp của bạn?

Chúng tôi sẽ liên hệ trong vòng 24 giờ.

Đăng ký tư vấn ngay

Bài viết liên quan

Bạn cần hỗ trợ thêm?

Để lại thông tin, chúng tôi sẽ liên hệ trong 24 giờ.