ما هو محول النص إلى ثنائي / ASCII؟
تحوِّل هذه الأداة أي نص تكتبه إلى تمثيله الثنائي. تخزّن الحواسيب النصوص على هيئة أرقام باستخدام نظام ترميز للأحرف — وبالنسبة لأحرف اللغة الإنجليزية الأساسية والأرقام وعلامات الترقيم يكون هذا الترميز هو ASCII. يقابل كل حرف رمزٌ رقمي، ويُكتب هذا الرمز هنا في صورة سلسلة ثنائية من 8 بتات (ثمانية أرقام من 0 و1). كما يعرض المحول أكواد ASCII العشرية والمكافئات الست عشرية لتتمكن من التحقق من النتيجة في أي نظام عددي.
كيفية الاستخدام
اكتب نصك أو الصقه في حقل الإدخال ثم أرسله. يعرض الحقل الرئيسي السلسلة الثنائية الكاملة بمجموعة واحدة من 8 بتات لكل حرف، مفصولة بمسافات. ويسرد الجدول أسفله أكواد ASCII العشرية والقيم الست عشرية المقابلة، إضافة إلى عدد الأحرف وإجمالي عدد البتات. تُحتسب المسافات وعلامات الترقيم أحرفًا أيضًا — فقيمة المسافة في ASCII هي 32.
شرح المعادلة
لكل حرف c، نأخذ رمزه الرقمي (نفس القيمة التي تُرجعها الدالة charCodeAt في JavaScript)، ثم نحوّل هذا العدد الصحيح إلى النظام ثنائي الأساس، ونملأ الفراغ من اليسار بالأصفار حتى يصبح عرضه 8 خانات:
على سبيل المثال، الحرف A رمزه في ASCII هو 65، الذي يساوي 1000001 في النظام الثنائي، ويُكمَّل ليصبح 01000001. إجمالي عدد البتات = \(8 \times n_{chars}\).
مثال تطبيقي
لنحوّل كلمة Hi. الحرف "H" قيمته في ASCII هي 72 ← ثنائي 01001000 ← ست عشري 48. والحرف "i" قيمته في ASCII هي 105 ← ثنائي 01101001 ← ست عشري 69. وبذلك تصبح "Hi" في الصورة الثنائية 01001000 01101001، وبالنظام العشري 72 105، وبالنظام الست عشري 48 69، مستخدمةً 16 بت عبر حرفين.
جدول مرجعي لأحرف ASCII
يعين معيار ASCII لكل حرف رقماً من 0 إلى 127. في هذا المحول، يتم تحويل الرمز العشري لكل حرف إلى قيمة ثنائية بـ 8 بت (معبأة بالأصفار على اليسار لملء 8 بت) وإلى قيمة سادسة عشرية بخانتين. يسرد الجدول أدناه الأحرف المطبوعة الشائعة الاستخدام.
| الحرف | العشري | ثنائي بـ 8 بت | سادس عشر |
|---|---|---|---|
| (مسافة) | 32 | 00100000 | 20 |
| ! | 33 | 00100001 | 21 |
| 0 | 48 | 00110000 | 30 |
| 1 | 49 | 00110001 | 31 |
| 5 | 53 | 00110101 | 35 |
| 9 | 57 | 00111001 | 39 |
| : | 58 | 00111010 | 3A |
| ? | 63 | 00111111 | 3F |
| @ | 64 | 01000000 | 40 |
| A | 65 | 01000001 | 41 |
| B | 66 | 01000010 | 42 |
| M | 77 | 01001101 | 4D |
| Z | 90 | 01011010 | 5A |
| a | 97 | 01100001 | 61 |
| b | 98 | 01100010 | 62 |
| m | 109 | 01101101 | 6D |
| z | 122 | 01111010 | 7A |
على سبيل المثال، الحرف الكبير A له الرمز العشري 65، والذي يكون في النظام الثنائي 1000001 وعند معالجته إلى 8 بت يصبح 01000001. كحرف مفرد، الكلمة "Hi" تُرمز إلى 01001000 01101001.
المصطلحات الرئيسية موضحة
- البت (Bit)
- أصغر وحدة من البيانات الرقمية، تحمل قيمة واحدة إما 0 أو 1 (رقم ثنائي).
- البايت (Byte)
- مجموعة من 8 بت. البايت الواحد يمكن أن يمثل 256 قيمة مختلفة (\(2^8 = 256\))، وهذا بالضبط كافٍ لتخزين حرف واحد من ASCII الموسع.
- ASCII
- معيار الكود الأمريكي لتبادل المعلومات — معيار ترميز الأحرف الذي يعيِّن 128 حرفاً (الرموز 0–127)، بما في ذلك الأحرف والأرقام والعلامات والرموز التحكم، إلى أرقام.
- يونيكود (Unicode)
- معيار أحرف عالمي يتجاوز بكثير ASCII ليغطي تقريباً جميع الأنظمة الكتابية والرموز والرموز التعبيرية. أول 128 نقطة رمز يونيكود متطابقة مع ASCII.
- نقطة الرمز (Code point)
- القيمة الرقمية المخصصة لحرف ما ضمن مجموعة الأحرف. بالنسبة للحرف "A" فإن نقطة الرمز هي 65 في كل من ASCII و Unicode.
- ثنائي (Binary)
- نظام الأرقام ذو الأساس 2، الذي يستخدم فقط الأرقام 0 و 1. كل موضع يمثل قوة من قوى اثنين (1, 2, 4, 8, …).
- عشري (Decimal)
- نظام الأرقام ذو الأساس 10 المستخدم في العد اليومي، بأرقام 0–9 والمواضع تمثل قوى العشرة.
- سادس عشر (Hexadecimal)
- نظام الأرقام ذو الأساس 16، يستخدم الأرقام 0–9 والأحرف A–F. رقم سادس عشر واحد يمثل بالضبط 4 بت، لذا فإن رقمين سادس عشر يمثلان بايتاً واحداً.
- المعالجة / المحاذاة اليسرى
- إضافة أصفار في البداية على يسار قيمة ثنائية بحيث يشغل كل حرف عرضاً موحداً. بايتات ASCII يتم معالجتها باليسار إلى 8 بت — على سبيل المثال، الرمز 65 (ثنائي 1000001) يصبح 01000001.
جدول تحويل ثنائي وعشري وسادس عشر
يوضح الجدول أدناه كيف تظهر القيمة نفسها بالنظام العشري (الأساس 10) والثنائي (الأساس 2) والسادس عشر (الأساس 16). لاحظ كيف يضيف كل أس من أسس اثنين رقماً ثنائياً واحداً إضافياً، وكيف يتطابق كل 4 بتات ثنائية بدقة مع رقم سادس عشر واحد.
| عشري | ثنائي (8 بت) | سادس عشر |
|---|---|---|
| 0 | 00000000 | 00 |
| 1 | 00000001 | 01 |
| 2 | 00000010 | 02 |
| 3 | 00000011 | 03 |
| 4 | 00000100 | 04 |
| 5 | 00000101 | 05 |
| 6 | 00000110 | 06 |
| 7 | 00000111 | 07 |
| 8 | 00001000 | 08 |
| 9 | 00001001 | 09 |
| 10 | 00001010 | 0A |
| 11 | 00001011 | 0B |
| 12 | 00001100 | 0C |
| 13 | 00001101 | 0D |
| 14 | 00001110 | 0E |
| 15 | 00001111 | 0F |
| 16 | 00010000 | 10 |
| 32 | 00100000 | 20 |
| 64 | 01000000 | 40 |
| 128 | 10000000 | 80 |
| 255 | 11111111 | FF |
كتحقق، العدد العشري 255 هو أكبر قيمة يمكن لبايت واحد أن يحملها؛ صيغته السادسة عشرية هي FF وصيغته الثنائية هي جميع البتات الثمانية معينة على 1. وبالمثل، العدد العشري 64 يتحول إلى النظام الثنائي 1000000، والذي يتم معالجته إلى 01000000.
الأسئلة الشائعة
هل تتعامل الأداة مع الأحرف غير الإنجليزية؟ يغطي ترميز ASCII القياسي النقاط من 0 إلى 127. أما الأحرف التي تتجاوز 127 (مثل الحروف ذات العلامات أو الرموز التعبيرية) فستستخدم نقطة الترميز الخاصة بها في Unicode، والتي قد تتجاوز 8 بتات ولا تتسع ضمن ASCII القياسي. ملاحظة: الحروف العربية ليست ضمن ASCII، فهي تقع ضمن نطاق Unicode وتحتاج عددًا أكبر من البتات.
لماذا 8 بتات لكل حرف؟ البايت يساوي 8 بتات، وترميز ASCII يتسع تقليديًا ضمن بايت واحد، لذا فإن التجميع بـ 8 بتات هو التمثيل المتعارف عليه.
هل يمكنني تحويل الثنائي إلى نص مرة أخرى؟ تحوّل هذه الأداة النص إلى ثنائي. ولعكس العملية، قسّم السلسلة الثنائية إلى مجموعات من 8 بتات وأرجِع كل قيمة إلى حرف ASCII المقابل لها.