
ملف يظهر عندك بحجم 10 MB، ثم تفتحه على نظام آخر فتجد رقمًا مختلفًا قليلًا. هل تغيّر الملف؟ ليس بالضرورة. أحيانًا البايتات هي نفسها تمامًا، والاختلاف كله في طريقة تسمية وحدات القياس وعرضها.
حجم الملف = عدد البايتات التي يحتويها
المتصفح نفسه يعرض حجم File بالبايتات عبر خاصية size في File API. الاختلاف يبدأ عندما نحوّل هذا الرقم الكبير إلى KB أو MB أو GB للعرض البشري.
KB وMB وGB في النظام العشري
في نظام SI، البادئات kilo وmega وgiga تعني قوى العدد 10. وفق NIST: kilo يساوي 10³، mega يساوي 10⁶، وgiga يساوي 10⁹. لهذا يكون 1 kB = 1000 بايت، و1 MB = 1,000,000 بايت، و1 GB = 1,000,000,000 بايت. [المصدر: NIST Guide to the SI]
NIST يوضح أيضًا أن استخدام kilo بمعنى 1024 أو mega بمعنى 1,048,576 غير صحيح ضمن SI نفسه، لأن هذه البادئات مخصصة لقوى 10. [المصدر: NIST SP 330]
1 kB = 1000 B
1 MB = 1,000,000 B
1 GB = 1,000,000,000 B
1 KiB = 1024 B
1 MiB = 1,048,576 B
1 GiB = 1,073,741,824 B
إذن من أين جاءت 1024؟
الحوسبة تعمل تاريخيًا كثيرًا بقوى العدد 2. العدد 1024 يساوي 2¹⁰، وهو قريب من 1000. لسنوات طويلة استُخدمت كلمات kilobyte وmegabyte بشكل غير منضبط أحيانًا للدلالة على مضاعفات ثنائية.
لحل الالتباس، اعتمدت IEC أسماء مستقلة للمضاعفات الثنائية: kibi وmebi وgibi وغيرها. NIST يعرض هذه التعريفات بوضوح: 1 KiB = 2¹⁰ بايت، و1 MiB = 2²⁰ بايت، و1 GiB = 2³⁰ بايت. [المصدر: NIST — Binary Prefixes]

أمثلة توضح الفرق بين الوحدات
مثال بسيط: ملف حجمه 10,000,000 بايت
بالنظام العشري، تقسم على مليون فتحصل على 10 MB تمامًا. إذا قسّمت الرقم على 1,048,576، تحصل على نحو 9.54 MiB.
إذا عرض برنامج الرقم الثاني لكنه كتب بجانبه “MB” بدل “MiB”، سيبدو لك أن جهازًا ما “نقص” حجم الملف، رغم أن عدد البايتات لم يتغير إطلاقًا.
جدول سريع للمقارنة
| الرمز | القيمة بالبايت | نوع البادئة |
|---|---|---|
| kB | 1,000 | عشرية SI |
| KiB | 1,024 | ثنائية IEC |
| MB | 1,000,000 | عشرية SI |
| MiB | 1,048,576 | ثنائية IEC |
| GB | 1,000,000,000 | عشرية SI |
| GiB | 1,073,741,824 | ثنائية IEC |
لماذا تختلف المساحة المعروضة؟
لماذا يظهر قرص 500 GB بسعة أقل في بعض الأنظمة؟
إذا أعلن المصنع 500 GB بالنظام العشري، فهذا يعني 500 مليار بايت. عندما تعرض واجهة هذه البايتات على أساس 2³⁰ لكل وحدة، تحصل على رقم يقارب 465.66 GiB.
إذا سمّت الواجهة هذه القيمة “GB” بدل “GiB”، يظهر كأن هناك عشرات الجيجابايت المفقودة. جزء من الفرق قد يكون أيضًا بسبب التقسيم ونظام الملفات والمساحة المحجوزة، لكن أول فرق حسابي واضح يأتي من طريقة الوحدات نفسها.
حجم الملف ليس هو نفسه “Size on disk”
حتى عندما يكون حجم الملف بالبايتات معروفًا، قد ترى في بعض أنظمة التشغيل قيمة أخرى باسم المساحة على القرص. السبب أن أنظمة الملفات تخزن البيانات في وحدات تخصيص أو clusters. ملف صغير قد يشغل وحدة كاملة حتى لو لم يستخدم كل بايت فيها.
لهذا يمكن أن يكون “حجم الملف” أقل من “المساحة التي يشغلها على القرص”. هذا موضوع مختلف عن الفرق بين MB وMiB، ومن المفيد عدم خلط السببين.
هل الضغط يغيّر الوحدة أم عدد البايتات؟
الضغط الحقيقي يغيّر كمية البيانات نفسها، وبالتالي يقل عدد البايتات. أما تغيير طريقة العرض من MB إلى MiB فلا يغير الملف إطلاقًا.
إذا كنت تقارن قبل الضغط وبعده، الأفضل أن تنظر إلى الحجم بالبايت أو تستخدم الأداة نفسها في القياسين حتى تكون طريقة التحويل واحدة.
قراءة الحجم في الاستخدام العملي
ماذا تعرض أداة فحص الملفات في تولاتي؟
الأداة تحصل على File.size من المتصفح. مواصفة W3C File API تعرف size بأنه عدد البايتات في البيانات. بعدها يمكن للواجهة تحويل الرقم إلى وحدة أسهل للقراءة. [المصدر: W3C File API]
هذا يجعل البايت هو المرجع الأفضل إذا أردت مقارنة نسختين بدقة. أما KB وMB وGB فهي طريقة عرض بشرية فوق هذا الرقم.
ثلاث حالات لا تحتاج فيها إلى القلق من الاختلاف
غالبًا طريقة العرض مختلفة فقط.
هي تستخدم المضاعفات الثنائية، وهذا يفسر الرقم الأصغر مقارنة بـMB أو GB العشرية.
تحقق أولًا من نوع الوحدة قبل افتراض وجود مساحة مفقودة.
ومتى يصبح الاختلاف مهمًا؟
يمكنك قراءة دليل SHA-256 والتحقق من الملفات إذا كان هدفك معرفة هل النسختان متطابقتان فعلًا، وليس فقط كيف تُعرض أحجامهما.
انتبه إلى حرف B: MB ليست Mb
هناك التباس آخر مختلف تمامًا عن MB وMiB: الحرف الكبير B يعني byte، بينما الحرف الصغير b يعني bit. والبايت الواحد يساوي 8 بت. لذلك 100 MB ليست هي 100 Mb؛ الأولى أكبر بثماني مرات من الثانية من حيث عدد البتات.
هذه النقطة تظهر كثيرًا في سرعات الإنترنت. مزود الخدمة قد يعلن السرعة بالميجابت في الثانية Mb/s، بينما مدير التنزيل يعرض سرعة الملفات بالميجابايت في الثانية MB/s. التحويل النظري البسيط يقسم على 8 قبل احتساب أي overhead أو ظروف شبكة أخرى.
لماذا يرفض موقع ملفًا يبدو تحت الحد المسموح؟
قد يكتب موقع «الحد الأقصى 10 MB»، بينما الكود الداخلي يقارن الحجم بعدد بايتات محسوب على أساس مختلف أو يضيف قيودًا أخرى بعد الرفع. إذا كان الحد حرجًا، لا تعتمد على الرقم المقرب الذي يعرضه مستكشف الملفات فقط.
الحل العملي للمطور هو تحديد الوحدة بدقة في الواجهة وفي الكود: هل المقصود 10,000,000 بايت أم 10 MiB؟ أما للمستخدم، فإذا كان الملف قريبًا جدًا من الحد، اجعله أصغر قليلًا بدل محاولة الوقوف على الحد حرفيًا.
اعرف حجم الملف من نفس المصدر
أداة فحص الملفات في تولاتي تعرض حجم الملف مع معلوماته الأخرى. استخدمها لمقارنة الملفات من واجهة واحدة بدل التنقل بين أدوات قد تستخدم طرق عرض مختلفة.
المصادر الرسمية المستخدمة
- NIST Guide to the SI — Chapter 4: تعريف بادئات kilo وmega وgiga كقوى عشرية.
- NIST — Prefixes for Binary Multiples: تعريف Ki وMi وGi للمضاعفات الثنائية.
- W3C — File API: تعريف File.size بعدد البايتات.
