مترجم النظام الثنائي
حوّل النص إلى شيفرة ثنائية وحوّل الثنائي إلى نص مقروء، لحظيًا أثناء الكتابة.
يتيح لك هذا المترجم تحويل النص الى binary وفكّ الشيفرة الثنائية إلى نص، مع التحديث لحظيًا أثناء الكتابة. اكتب 'hi' وشاهدها تصبح 01101000 01101001؛ أو الصق جدارًا من الأصفار والآحاد من لغز أو من قميص واقرأ ما يقوله.
يُمثَّل كل محرف بنقطة الترميز الخاصة به، معروضة في مجموعات من 8 بتات. وبالنسبة لحروف اللغة الإنجليزية العادية يعني ذلك ASCII القياسي: الحرف A الكبير هو 01000001، وa الصغير هو 01100001. هكذا تخزّن الحواسيب النص فعلًا، ما يجعل الأداة وسيلة عملية لطيفة لتعليم آلية ترميز المحارف أو تعلّمها، وركيزة لواجبات علوم الحاسوب وألغاز غرف الهروب وألعاب الجيوكاشينغ.
يجري كل شيء في متصفحك دون خادم، فالأداة فورية وخاصة وتعمل دون اتصال بعد تحميل الصفحة.
كيفية ترجمة الثنائي
- اختر الاتجاه: من النص إلى الثنائي أو من الثنائي إلى النص.
- اكتب أو الصق في صندوق الإدخال.
- تظهر الترجمة فورًا في صندوق الإخراج أثناء الكتابة.
- للإدخال الثنائي، أبقِ الأصفار والآحاد في مجموعات من 8 بتات؛ والمسافات بين البايتات لا بأس بها.
- انقر «نسخ» لأخذ النتيجة.
كيف يصبح النص ثنائيًا
لا تخزّن الحواسيب إلا الأرقام، لذا يُسنَد لكل محرف رقم: في ASCII، A هو 65، وهو في الأساس 2 يساوي 1000001، ويُحشى إلى بايت من 8 بتات ليصير 01000001. والسلسلة النصية ما هي إلا تلك البايتات متتالية. والفك يعكس ذلك: قسّم التدفق إلى مجموعات من 8، حوّل كلًا منها إلى رقم، وابحث عن المحرف الموافق.
المحارف التي تتجاوز ASCII الأساسي، كحرف é أو الرموز التعبيرية أو الحروف العربية، تُرمَّز بصيغة UTF-8 التي تستخدم من بايتين إلى أربعة بايتات لكل محرف. لذا قد يُترجَم رمز واحد على الشاشة إلى عدة مجموعات من 8 بتات بشكل مشروع؛ وهذا ليس خطأً.
ماذا يفعل مترجم الثنائي
تتحرّك الأداة في اتجاهين بين النص المقروء وتمثيله الثنائي. في اتجاه، تأخذ كل محرف من نصك، وتبحث عن نقطة ترميزه الرقمية، وتكتب ذلك الرقم في الأساس 2 كمجموعة من البتات. وفي الاتجاه الآخر، تقرأ مجموعات من الأصفار والآحاد، وتحوّل كلًّا منها إلى رقم، وتحوّل تلك الأرقام إلى المحارف التي تمثّلها.
من المهم أن ترى هذا كتحويل لا كشيفرة سرّية. فالثنائي ببساطة طريقة أخرى لكتابة رموز المحارف نفسها التي يستخدمها حاسوبك أصلًا؛ إنه لا يخفي شيئًا ولا يحمي شيئًا. وهذا يجعل المترجم أداة تعليم وألغاز لا أداة أمان، وهو بالضبط سبب كون الناتج قابلًا للعكس بالكامل من أي شخص.
كيف يعمل داخل متصفحك
كل تحويل يجري بلغة JavaScript على جهازك أنت، لحظيًا أثناء الكتابة. لا يوجد استدعاء خادم بين ضغطتك على المفتاح والنتيجة، ولهذا يتحدّث الناتج فورًا وتظل الصفحة تعمل بعد انقطاع اتصالك، بشرط أن تكون قد حُمّلت مسبقًا.
وإجراء العمل محليًا يعني أيضًا أن أي شيء تلصقه، سواء سلسلة واجب أو مفتاح لغز أو ملاحظة خاصة، يبقى على جهازك ولا يُرفع أو يُسجَّل أبدًا. ولأداة تعليمية يُعدّ هذا راحة في الغالب، لكن تصميم الخصوصية أولًا نفسه يقوم عليه كل محوّل في الموقع.
ASCII وUnicode وUTF-8 بعبارات بسيطة
ASCII هو المخطط الأصلي الذي يُسنِد الأرقام من 0 إلى 127 لحروف الإنجليزية والأرقام وعلامات الترقيم الشائعة، ويتّسع كلٌّ منها بأريحية في بايت واحد من 8 بتات. ولهذا يُنتِج النص الإنجليزي العادي مجموعة أنيقة من 8 خانات لكل محرف، مع صفر بادئ كحشو: الحرف A الكبير هو 01000001، وa الصغير هو 01100001، والمسافة هي 00100000.
يوسّع Unicode تلك الفكرة لكل أنظمة الكتابة وللرموز التعبيرية، وUTF-8 هو طريقة حزم نقاط الترميز الأكبر تلك في بايتات. يستخدم UTF-8 بايتًا واحدًا لمحارف ASCII وبايتين أو ثلاثة أو أربعة لكل ما عداها. لذا يتحوّل حرف مشكّل أو رمز تعبيري بشكل مشروع إلى عدة مجموعات من 8 بتات؛ والمترجم يرمّز تلك المتتاليات متعددة البايتات ويفكّها بشكل صحيح.
استخدامات ممتعة وعملية
يتألّق المترجم في التعلّم واللعب. فهو يمنح الطلاب وسيلة ملموسة وعملية لرؤية كيف يصبح محرف يكتبونه هو البتات التي يخزّنها الحاسوب فعلًا، ما يجعل موضوعًا مجرّدًا يتّضح فجأة. وهو أيضًا ركيزة لغرف الهروب، ومخابئ الجيوكاشينغ، وتحديات التقاط العلم (CTF)، والشعارات الثنائية المطبوعة على قمصان المبرمجين وأكوابهم.
أما للمطورين فهو فحص سلامة سريع لا أداة يومية: فكّ سلسلة ثنائية قصيرة لتأكيد رمز محرف، أو ترميز كلمة لتضمينها في لغز أو حالة اختبار. وحين تحتاج نقل بيانات ثنائية حقيقية عبر نظام، فعادةً تلجأ إلى hex أو Base64، لكن لفهم ما تعنيه البتات، تكون الأصفار والآحاد المجرّدة أوضح.
أخطاء شائعة عند فك الثنائي
السبب الأول للناتج المشوّه هو مجموعة ليست من ثماني خانات بالضبط. ولأن البايتات تُقرأ في كتل ثابتة من ثمانية، فبتة واحدة ناقصة أو زائدة تزيح كل بايت لاحق وتحوّل بقية الرسالة إلى هراء. عُدّ الخانات في كل مجموعة، وتذكّر أن المسافات بين البايتات لا بأس بها وكثيرًا ما تسهّل فحص المدخل.
والسبب الثاني هو إدخال شيء ليس نصًا مرمّزًا ثنائيًا فعلًا: محارف شاردة غير 0 و1، أو تفريغ ملف ثنائي اعتباطي لم يكن نصًا من الأساس. فإن احتوى مدخلك حروفًا أو رموزًا، فالأرجح أنه hex أو Base64 متنكّرًا، وفكّه كنصّ ثنائي لن يُنتِج شيئًا مقروءًا.
الثنائي مقارنًا بـ hex وBase64
الثلاثة كلها مجرد طرق مختلفة لكتابة البايتات الكامنة نفسها، تقايض المقروئية بالإيجاز. يُظهر الثنائي كل بتة على حدة، صفر أو واحد لكل موضع، وهو الأوضح للتعليم لكنه الأطول كتابةً. ويحزم النظام الست عشري أربع بتات في كل رمز، فبايت واحد يساوي خانتين hex، محقّقًا توازنًا يستخدمه المطورون باستمرار. أما Base64 فيحزم ست بتات لكل محرف، ما يجعله الأكثر إيجازًا بين الثلاثة لنقل البيانات كنص.
معرفة ما تنظر إليه توفّر الالتباس. السلاسل الطويلة من الأصفار والآحاد فقط ثنائية؛ والسلاسل القصيرة من 0-9 وa-f هي hex؛ والحروف والأرقام المختلطة مع + و/ (وتنتهي غالبًا بـ =) هي Base64. فإن احتوى «ثنائيّك» أي شيء غير الأصفار والآحاد، فأداة Base64 في الموقع أو عرض hex هو ما تريده فعلًا، وكلٌّ منها يعمل على جانب العميل تمامًا كهذا المترجم.
الأسئلة الشائعة
هل مترجم النظام الثنائي مجاني؟
نعم، مجاني تمامًا دون حدود أو تسجيل. ترجم ما تشاء من النص أو الثنائي.
لماذا يتكوّن كل حرف من 8 خانات؟
لأن الحواسيب تجمع البتات في بايتات من 8، وبايت واحد يحمل محرف ASCII واحدًا. والأصفار البادئة حشو لإظهار البايت كاملًا: فحرف A هو 1000001 في الثنائي الصرف، ويُكتب 01000001.
لماذا لا يُفكّ الثنائي الخاص بي إلى شيء مقروء؟
تحقق من أن كل مجموعة تتكوّن تحديدًا من 8 خانات وتحتوي على أصفار وآحاد فقط. فخانة ناقصة تزيح كل بايت لاحق وتحوّل الرسالة كاملة إلى خربشة. وتأكد أيضًا أن النص ثنائي مرمّز فعلًا وليس، مثلًا، تفريغ ملف ثنائي.
هل يتعامل مع الرموز التعبيرية والحروف غير الإنجليزية؟
نعم. تُرمَّز بصيغة UTF-8، فيصبح رمز تعبيري واحد أربعة بايتات (32 خانة). والمترجم يفكّ المتتاليات متعددة البايتات بشكل صحيح أيضًا.
هل الثنائي هو نفسه Base64 أو hex؟
لا. إنها تمثيلات مختلفة. فالثنائي يُظهر البتات الخام؛ وhex يحزم 4 بتات لكل رمز؛ وBase64 يحزم 6. فإن احتوى «ثنائيّك» على حروف ورموز، فالأرجح أنك تريد أداتَي Base64 أو hex لدينا بدلًا منه.
هل يعمل على الهواتف؟
نعم، يعمل في أي متصفح هاتف. لكن كتابة سلاسل ثنائية طويلة مرهقة على لوحة مفاتيح اللمس، لذا فاللصق صديقك.