Harddisk ที่หายไป

เรื่องนี้หลายคนอาจจะรู้แล้ว อยากเขียนไว้อ่านเล่นๆ เผื่อเป็นความรู้ใหม่สำหรับคนอื่นๆนะครับ


เคยลองสังเกตไหมว่าฮาร์ดดิสก์ของเรา(รวมถึงพวกแฟรชไดรว์ด้วยนะครับ) ต่างโฆษณาว่า เก็บความจุได้เท่านั้นเท่านี้ เช่น 320 GB บ้าง 500 GB บ้าง แต่พอลองมาใช้จริงๆแล้วความจุกลับไม่ถึงตามขนาดที่บอก ส่วนใหญ่จะน้อยกว่านิดหน่อยครับ ถามว่า ความจุส่วนที่หายไปล่ะ โดนหลอกรึเปล่า??

จริงๆแล้ว เป็นเรื่องของระบบตัวเลขที่ใช้ในการคำนวณที่แตกต่างกันของ บริษัทผู้ผลิตฮาร์ดดิสก์ กับ ระบบปฏิบัติการครับ เราจะเอาขนาดที่เห็นจากบนเครื่องคอมของเราเทียบกับข้างกล่องว่ามันไม่เท่ากันไม่ได้ครับ เพราะมันแค่การคำนวณคนละแบบ

ผู้ผลิตฮาร์ดดิสก์ จะคำนวณหน่วยตามมาตรฐาน SI Unit ที่เราคุ้นหูกันตอนเรียนวิชาฟิสิกส์ครับ จะเป็นเรื่องของคำนำหน้าหน่วย (Prefix) ซึ่งคิดเป็นเลขฐาน 10 ดังนี้ครับ
1 Giga(G) = 1000 Mega(M)
1 Mega(M)  = 1000 Kilo(K)
1 Kilo(K) = 1000 unit
ระบบปฏิบัติการ ก็อย่างที่รู้ๆกันก็คือ ระบบคอมพิวเตอร์จะคำนวณเป็น bit ครับ(8 bits = 1 byte) ซึ่งทำให้การคำนวณต้องเป็นลักษณะเลขฐาน 2 ดังนี้ครับ
1 Giga(G) = 1024 Mega(M)
1 Mega(M)  = 1024 Kilo(K)
1 Kilo(K) = 1024 unit

ดังนั้น ต่อไปเวลาสังเกตก็รู้ไว้เลยว่า ข้างกล่องคือความจุที่คำนวณด้วยเลขฐาน 10 ครับ แต่ที่เห็นในคอมฯจะเป็นความจุที่ถูกคำนวณด้วยเลขฐาน 2 ครับ วิธีคิดก็ง่ายๆครับ แปลง Prefix หน่วยปกติเลย (เหมือนแปลง km เป็น cm อะไรประมาณนั้นแหละครับ)
1) คูณ Prefix ให้หมดไปครับ
2) หารด้วย Prefix ตัวใหม่

สมมติว่าผมไปซื้อฮาร์ดดิสก์ขนาด 500 GB มาจากร้าน แสดงว่าผมเอามาใช้จริงได้แค่
500 * (1000*1000*1000) / (1024*1024*1024) = ~465.66 GB ครับ

ทีนี้ หวังว่าคงไม่มีใครคิดว่าโดนหลอกแล้วนะครับ ^^

ข้อมูลเพิ่มเติมสำหรับ SI Unit ครับ
http://en.wikipedia.org/wiki/International_System_of_Units

Facebook Comment

Recent Posts

Popular post of 7 days

Portal คืออะไรกันนะ???

มาตรฐานการตั้งชื่อตัวแปร (Naming Convention)

[Java] ความแตกต่างระหว่าง Overloading กับ Overriding

Popular

[Java] Java 8 DateTime ใหม่ ไฉไลกว่าเดิม

Portal คืออะไรกันนะ???

มาตรฐานการตั้งชื่อตัวแปร (Naming Convention)

[Java] ความแตกต่างระหว่าง Overloading กับ Overriding

เรื่องของ ++i กับ i++

ลืมรหัสปลดล็อค Android เข้าเครื่องไม่ได้ มีทางออกครับ

[Java] Java Static Variable และ Static Method

Push Notification คืออะไร มีวิธีทำอย่างไร (No Code)

พิมพ์ซองจากรายชื่อ excel ด้วยวิธี Mail Merge

[Android] เปิดเครื่องไม่ได้ โลโก้ค้าง (Boot Loop)