1kB != 1024 bytes

by Chaiyaporn Khemapatapan

เคยสังเกตไหมว่า เวลาดูปริมาณหน่วยความจำของ SD card หรือ Hard disk ที่ซื้อมา แล้วรู้สึกว่ามันน้อยกว่าที่เราคิด อันที่จริงปริมาณที่เราเห็นนั้นถูกต้องอยู่แล้ว เพราะว่า prefix ที่ใช้แสดงปริมาณหน่วยความจำที่เราเข้าใจกันนั้นผิด !!

ในสมัยก่อนที่เราร่ำเรียนกันมาถึงวิธีการอ้างหน่วยความจำที่ใช้ในคอมพิวเตอร์ต้องใช้เลขฐาน 2 เพื่ออ้างถึงลำดับในหน่วยความจำ และเลขฐาน 2 ขนาด 10 bit ใช้อ้างหน่วยความจำได้ทั้งสิ้น 1024 ลำดับ (2^10 = 1024) และแต่ละลำดับมีขนาด 1 byte เพื่อความสะดวกในการเขียนย่อเราจึงเขียนให้ 1024 bytes = 1kB

อย่างไรก็ตามเนื่องจากวิธีดังกล่าวสร้างความสับสนกับ prefix ที่ใช้ในหน่วยวัดอื่นเช่น 1km = 1000 meters ซึ่ง NIST ก็ยอมรับการใช้งาน prefix แบบหลังเท่านั้น ดังนั้น IEC ซึ่งเป็นหน่วยงานด้านมาตรฐานระหว่างประเทศ จึงเสนอการใช้prefix แบบใหม่ตั้งแต่ปี 1996 แล้วจึงกำหนดเป็นมาตรฐาน IEC 600027-2 [1] ในปี 1999 ให้ 1kibiB = 1KiB = 1024 bytes และ 1mebiB = 1MiB = 1048576 bytes และ 1gibiB = 1GiB = 1024 MiB แต่ด้วยในภายหลังมีปริมาณข้อมูลมีเพิ่มมากขึ้น จึงกำหนดมาตรฐาน prefix เพิ่ม IEC 800000-13 [2] ในปี 2008 ดังตารางต่อไปนี้ [3]

ดังนั้น 1kB = 1000 bytes และ 1KiB = 1024 bytes ครับ ต่อไปนี้ใช้กันให้ถูกต้องนะครับ^^

Reference
[1] "These prefixes for binary multiples, which were developed by IEC Technical Committee (TC) 25, Quantities and units, and their letter symbols, with the strong support of the International Committee for Weights and Measures (CIPM) and the IEEE, were adopted by the IEC as Amendment 2 to IEC International Standard IEC 60027-2: Letter symbols to be used in electrical technology – Part 2: Telecommunications and electronics."

[2] "International System of Units (SI): Prefixes for binary multiples". The NIST Reference on Constants, Units, and Uncertainty. National Institute of Science and Technology. Retrieved 2007-09-09.

[3] " Binary prefix - Wikipedia" , https://en.m.wikipedia.org/wiki/Binary_prefix