ملف ثنائي

الملف الثنائي، لا يحمل بالضرورة امتداد ملف.bin أو .exe ، هو ملف حاسوب يحمل أي نوع من البيانات، لديه رمز نظام عد ثنائي لغرض التخزين والمعالجة؛ وعلى سبيل المثال:ملفات النصوص تحمل اسم نص منسق. العديد من صيغة ملف تحتوي على أجزاء يمكن تفسيرها كنص؛ الملفات الثنائية التي تحتوي على بيانات نصية فقط – بدون، على سبيل المثال، أي معلومات تنسيقية – يُطلق عليهم ملفات نص عادي. وفي العديد من الحالات، تُعتبر ملفات النص العادي مختلفة عن الملفات الثنائية لاحتواء الملفات الثنائية على ما هو أكثر من نص عادي. وعند التحميل، غالبا ما يُدعى برنامج وظيفي دون أي مثبت بالبرنامج الثنائي، أو الثنائيات (كمقابل لـ الكود المصدري).

التكوين

غالبا ما يُعتقد أن الملفات الثنائية هي سلسلة من البايت، وهو ما يعني تجمع الأعداد الثنائية (بت) في ثماني مجموعات. الملفات الثنائية تحتوي على عدد من البايت والمقصود لها أن تفسر على أنها شيء أخر غير صفات النص. وتعد برامج مصرف برمجة مثال حي على هذا، بل ويشار أحيانا لبرامج المصرف (كائن ملف) على أنهم ثنائيات، خصوصا من قبل المبرمجين. ولكن يمكن للملفات الثنائية أن تحتوي أيضا على صور، وأصوات، وإصدارات مضغوطة من الملفات الأخرى، وما إلى ذلك—وباختصار، أي نوع محتوى ملف.
بعض الملفات الثنائية تحتوي على ترويسة، وكتل من بيانات وصفية المستخدمة بواسطة برنامج حاسوب لتفسير البيانات في الملف. على سبيل المثال، يمكن لملف جي آي إف أن يحتوي على صور متعددة، وتستخدم ترويسات لتحديد ووصف كل كتلة من بيانات الصورة. إذا لم يحتو الملف الثنائي على أي ترويسة، قد يسمى ملف ثنائي عادي.

التناول

لإرسال الملفات الثنائية من خلال أنظمة معينة (مثل البريد الإلكتروني) التي لا تسمح بجميع قيم البيانات، غالبا ما تترجم إلى تمثيل النص العادي (باستخدام، على سبيل المثال، Base64). ومساوئ هذا الترميز هو زيادة حجم الملف بنحو 30 ٪ خلال عملية النقل، وكذلك تتطلب الترجمة إلى الثنائية بعد الاستلام. انظر إلى ترميز الثنائي إلى نص لمعرفة المزيد عن هذا الموضوع.
يسمح مايكروسوفت ويندوز للمبرمج أن يحدد معامل نظام الاتصال ليشير إلى ما إذا كان الملف ملف نصي أو ثنائي؛ لا يقوم يونكس بهذا الإجراء، ويعامل جميع الملفات كملفات ثنائية. وهذا يعكس حقيقة أن التمييز بين هذين النوعين من الملفات هو إلى حد ماتعسفي.

الرؤية

ويمكن استخدام محرر سداسي أو معاين لعرض بيانات الملف كسلسلة من قيم نظام العد السداسي عشر (أو العشرية، أو صفات ثنائية، أو أسكي) لمقابلة بايت الملف الثنائي.
إذا تم فتح ملف ثنائي في محرر نصوص، عادة ما تترجم كل مجموعة من ثمانية بت إلى حرف واحد، وغالبا ما سترى شاشة (ربما غير مفهومة) من الصفات النصية. إذا تم فتح الملف في أي من التطبيقات الأخرى، سيكون لهذا التطبيق استخدامه الخاص لكل بايت : ربما سيتعامل التطبيق مع كل بايت كرقم ويخرج تيار من الأرقام بين 0 و 255—أو ربما يفسر الأرقام في وحدات البايت إلى ألوان ويقوم بعرض الصورة المقابلة. إذا كان الملف هو في حد ذاته يعامل كملف قابل للتنفيذوالتشغيل، فمن ثم سيحاول نظام التشغيل ان يفسير الملف على شكل سلسلة من التعليمات بـ لغة الآلة.

التفسير

أن المعايير مهمة جدا للملفات الثنائية. فعلى سبيل المثال، الملف الثنائى المفسر من قبل مجموعة صفات أسكي سينتهي بعرض النص. ويمكن لتطبيق مخصص تفسير الملف بشكل مختلف، فقد يكون البايت في شكل صوت، أو بكسل، أو حتى كلمة بأكملها. فكلمة الثنائي نفسها لا معنى لها، حتى يحين الوقت الذي يُنفذ فيه خوارزمية لتُعرف ما ينبغي القيام به مع كل بت، أو بايت، أو كلمة، أو كتلة. وهكذا، وبمجرد دراسة الثنائي ومحاولة ملائمته مع تنسيقات معروفة قد يؤدي إلى استنتاج خاطئ على ما يمثله في الواقع. ويمكن استخدام هذه الحقيقة في التعمية بالأخفاء، حيث تفسر خوارزمية ملف بيانات ثنائي بشكل مختلف للكشف عن محتوى مختفي. وبدون الخوارزمية، فإنه من المستحيل تفسير هذا المحتوى المختفي.

التوافق الثنائي

سيكون لاثنين من الملفات ذات التوافق الثنائي نفس النمط من الأصفار والآحاد في جزء البيانات من الملف. ومع ذلك، قد تختلف ترويسة الملف.
ويستخدم المصطلح بشكل شائع ليعلن أن ملفات البيانات المنتجة من أحد التطبيقات هي الضبط نفس ملفات البيانات التي أنتجها تطبيق آخر. وعلى سبيل المثال، بعض شركات البرمجيات تنتج تطبيقات متوافقة ثنائيا مع الـ مايكروسوفت ويندوز وماكنتوش، وهو ما يعني أن الملف المنتج في بيئة ويندوز يمكن تبادله مع ملف منتج في بيئة ماكنتوش. هذا يتجنب الكثير من المشاكل الناجمة عن استيراد وتصدير البيانات.