محول الأساس: عشري، Hex، Base32، Base64
حوّل الأرقام بين النظام العشري وBase16 (السداسي عشري) وBase32 وBase64 في الاتجاهين، مع اكتشاف تلقائي للأساس. رمّز رقمًا عشريًا أو فك ترميز قيمة مُرمَّزة.
محول القواعد ثنائي الاتجاه
تحويل بين الأرقام العشرية والتشفيرات القياسية (Base16/Hex، Base32، Base64). أدخل قيمة في أي حقل للتحويل.
أدخل عددًا صحيحًا موجبًا (الحد الأقصى: 9,007,199,254,740,991)
أدخل قيمة مشفرة بـ Base16 أو Base32 أو Base64
حول التشفيرات القاعدية
التوثيق
محوّل قواعد ثنائي الاتجاه
يغيّر محوّل القواعد طريقة كتابة العدد، من دون تغيير العدد نفسه. تحوّل هذه الأداة عددًا عشريًا إلى الأساس 16 (السداسي عشري) أو الأساس 32 أو الأساس 64، كما تحوّل قيمة مُرمّزة إلى عدد عشري. وتكتشف أيضًا أيًّا من الترميزات الثلاثة تستخدمه قيمة مُلصقة.
ما المقصود بقاعدة العدد
أساس نظام العد، ويُسمّى أيضًا الجذر، هو عدد الرموز المختلفة التي يستخدمها نظام عددي لتمثيل خانة واحدة. النظام العشري هو الأساس 10 ويستخدم الأرقام من 0 إلى 9. غالبًا ما تخزّن الحواسيب الأعداد في قواعد أخرى لأن هذه القواعد تعبّئ القيمة نفسها في عدد أقل من المحارف، أو لأن مجموعة محارفها آمنة للإرسال عبر أنظمة نصية فقط مثل البريد الإلكتروني أو عنوان URL.
تعمل هذه الأداة مع ثلاث قواعد من هذا النوع:
- الأساس 16 (السداسي عشري). يستخدم الرموز 16
0–9وA–F. يخزّن كل محرف 4 بتات. ويشيع استخدامه في شفرات الألوان وعناوين الذاكرة وقيم التجزئة. - الأساس 32. يستخدم الرموز 32 من
AإلىZومن2إلى7، وفق معيار الإنترنت RFC 4648. يخزّن كل محرف 5 بتات. ويتجنب الأحرف والأرقام المتشابهة في الشكل، مثل0وO، مما يسهل قراءته بصوت عالٍ أو كتابته يدويًا. - الأساس 64. يستخدم 64 رمزًا: من
AإلىZ، ومنaإلىz، ومن0إلى9، إضافة إلى+و/، وهو محدد أيضًا في RFC 4648. يخزّن كل محرف 6 بتات. وهو الطريقة القياسية لتضمين البيانات الثنائية داخل النص، مثل مرفق بريد إلكتروني أو حقل JSON.
كيفية تحويل عدد عشري إلى الأساس 16 أو 32 أو 64
تقسّم الأداة العدد العشري أولًا إلى بايتات، كل منها مجموعة من 8 بتات، وتكتبها بترتيب البايت الكبير (البايت الأكثر أهمية أولًا). ثم تقرأ تلك البتات في مجموعات بالحجم المناسب للأساس الهدف: 4 بتات في كل مرة للأساس 16، أو 5 بتات في كل مرة للأساس 32، أو 6 بتات في كل مرة للأساس 64. ويُبحث عن كل مجموعة بتات في جدول رموز ذلك الأساس لإنتاج محرف إخراج واحد.
لأن الأساس 32 والأساس 64 يقرآن البتات في مجموعات من 5 أو 6، فإن المجموعة الأخيرة في العدد لا تقع غالبًا على حدّ بايت مكوّن من 8 بتات. وتملأ الأداة البتات المتبقية بأصفار، وتضيف، في الأساسين 32 و64، محارف = في النهاية، بحيث يكون طول الناتج دائمًا من مضاعفات 8 محارف (للأساس 32) أو 4 محارف (للأساس 64).
يستخدم الأساس 16 دائمًا عددًا صحيحًا من أزواج المحارف، وعددها 2 لكل بايت. وإذا احتاجت قيمة إلى عدد فردي من الخانات السداسية العشرية، يُضاف صفر في البداية، بحيث تمثل السلسلة دائمًا عددًا صحيحًا من البايتات.
صيغة الأساس 16 ومثال عليها
يتحول كل بايت إلى خانتين سداسيتين عشريتين بالضبط، وتساويان 16 مرة الخانة الأولى زائد الخانة الثانية:
حيث إن v هي قيمة البايت، وa الخانة السداسية العشرية الأولى، وb الثانية.
مثال: 255 بالنظام العشري. تتسع 255 في بايت واحد. 255 ÷ 16 = 15 والباقي 15، وتُكتب 15 على صورة F، لذا تصبح 255 هي FF. ولهذا فإن شفرة اللون #FFFFFF بيضاء: فهي ثلاثة بايتات، كل منها عند أعلى قيمة له.
مثال: 1000 بالنظام العشري. يحتاج 1000 إلى بايتين: 1000 = 3 × 256 + 232. يتحول البايت الأول، 3، إلى 03. أما البايت الثاني، 232، فهو 14 × 16 + 8، ويتحول إلى E8. وعند قراءتهما معًا، يكون 1000 في الأساس 16 هو 03E8، وليس 3E8 — إذ تُكمّل مخرجات النظام السداسي عشري دائمًا إلى بايتات كاملة، ولذلك تحصل قيمة أقل من 16 في البايت الأعلى على صفر بادئ.
أمثلة على الأساسين 32 و64
باستخدام العددين نفسيهما المذكورين أعلاه:
| عشري | الأساس 16 | الأساس 32 | الأساس 64 |
|---|---|---|---|
| 255 | FF | 74====== | /w== |
| 1000 | 03E8 | APUA==== | A+g= |
كيفية تحويل قيمة مُرمّزة إلى عدد عشري
ألصق سلسلة بالأساس 16 أو 32 أو 64 في حقل القيمة المُرمّزة، ثم اختر ذلك الأساس من القائمة المنسدلة بجانبه. تتحقق الأداة من المحارف بمقارنتها بالأبجدية الخاصة بذلك الأساس، وتعكس الخطوات السابقة، ثم تعرض القيمة العشرية. فك ترميز FF بوصفه من الأساس 16 يعطي 255.
تسمّي الأداة أيضًا الأساس الذي تبدو القيمة الملصقة وكأنها تستخدمه. لكن هذا الاسم مجرد إشارة. فما زالت القائمة المنسدلة هي التي تحدد كيفية قراءة القيمة، لأن أبجدية الأساس 16 جزء من أبجدية الأساس 32، وسلسلة قصيرة مثل ABCD هي قيمة صحيحة في كليهما.
يمكن أن يخلط الإدخال بالأساس 16 بين الأحرف الكبيرة والصغيرة؛ فالأداة تتعامل مع ff وFF بالطريقة نفسها. ويُقرأ العدد الفردي من الخانات السداسية العشرية بحسب القيمة المكانية، مع افتراض وجود صفر بادئ، ولذلك تعطي كل من 1F4 و01F4 القيمة 500. ويجب كتابة إدخال الأساس 32 بأحرف كبيرة: إذ لا يقبل مفكك ترميز الأداة أحرف الأساس 32 الصغيرة، وسيعرض خطأ إذا صادفها. أما الأساس 64 فيتعامل مع الأحرف الكبيرة والصغيرة بوصفها رموزًا مختلفة، كما يقتضي التنسيق، ولذلك يجب إدخال حالة الأحرف كما هي تمامًا.
بعض السلاسل لا يمكن أن تنتجها أي أداة ترميز، ولذلك ترفضها الأداة بدلًا من التخمين. ينشئ RFC 4648 الأساس 64 في مجموعات من 4 محارف، والأساس 32 في مجموعات من 8 محارف. وبغض النظر عن أي حشو من =، فإن سلسلة بالأساس 64 تزيد 1 محرف واحدًا على مضاعف 4، أو سلسلة بالأساس 32 تزيد 1 أو 3 أو 6 محارف على مضاعف 8، لا تحتوي على بايت كامل. ويؤدي هذا الإدخال إلى خطأ بدلًا من إنتاج عدد.
حدود المجال
أكبر عدد تقبله الأداة هو 9,007,199,254,740,991، ويساوي 2^53 − 1. وهذا أكبر عدد صحيح يمكن لمحرك JavaScript في متصفح ويب تمثيله بدقة. وفوق هذا الحد، يتعذر تخزين بعض الأعداد الصحيحة بدقة، ولذلك تعرض الأداة خطأ بدلًا من إرجاع خانة خاطئة بصمت. ويُقبل الصفر وأي عدد صحيح حتى هذا الحد؛ ولا يشترط أن يكون العدد موجبًا، بل غير سالب فقط.
ينطبق الحد في الاتجاهين. وتُرفض السلسلة المُرمّزة التي تمثل عددًا أكبر، مثل قيمة الأساس 16 20000000000000 (وهي 2^53)، بدلًا من تقريبها. وتُرفض الكسور أيضًا: إذ تصف الترميزات بايتات كاملة، ولذلك تنتج 1.5 خطأ بدلًا من نتيجة مقربة.
استخدامات كل ترميز
- الأساس 16 يظهر في قيم الألوان في CSS وHTML، وعناوين MAC وIPv6، وقيم التجزئة المستخدمة للتحقق من عدم تعديل ملف.
- الأساس 32 يظهر في مفاتيح إعداد المصادقة الثنائية، وبعض أنظمة مشاركة الملفات، وغيرها من المعرّفات المصممة للقراءة بصوت عالٍ أو للكتابة يدويًا.
- الأساس 64 يظهر في معرّفات URI من نوع
data:، ومرفقات البريد الإلكتروني، والرموز المميزة على الويب مثل JWT، حيثما يلزم نقل بيانات ثنائية عبر نظام مصمم للنصوص.
لا يغيّر التحويل بين هذه الترميزات العدد الأصلي مطلقًا. إنه يغيّر فقط عدد المحارف اللازمة لكتابته، والأنظمة التي يمكنها نقل ذلك النص بأمان.
الأسئلة الشائعة
ما الفرق بين الأساس 16 والأساس 32 والأساس 64؟ تختلف في عدد الرموز التي يمكن لكل محرف تمثيلها: 16 أو 32 أو 64. ويعني ازدياد عدد الرموز لكل محرف سلسلة مُرمّزة أقصر للعدد نفسه، مقابل أبجدية أكبر لقراءتها.
لماذا يُرمّز 1000 إلى 03E8 بدلًا من 3E8 في الأساس 16؟
تُكمّل مخرجات النظام السداسي عشري إلى عدد كامل من البايتات، بخانتين سداسيتين عشريتين لكل بايت. يحتاج 1000 إلى بايتين، ولذلك تحتوي النتيجة دائمًا على أربع خانات سداسية عشرية، حتى مع كون الخانة الأولى صفرًا.
هل الأساس 32 غير حساس لحالة الأحرف؟ تُعرَّف أبجدية الأساس 32 باستخدام الأحرف الكبيرة. ولا يقبل مفكك ترميز هذه الأداة إلا إدخال الأساس 32 بالأحرف الكبيرة؛ وستؤدي الأحرف الصغيرة إلى خطأ.
ما أكبر عدد يمكن للمحوّل معالجته؟ 9,007,199,254,740,991، وهو 2^53 − 1. وهذا هو حد الدقة الصحيحة الدقيقة في JavaScript، وهي اللغة التي تعمل بها الأداة.
هل يمكنني تحويل عدد سالب؟ لا. تقبل الأداة الأعداد الصحيحة الصفرية أو الأكبر فقط.
لماذا ترفض الأداة بعض السلاسل التي تبدو كأنها Base64 صالحة؟ تُكتب Base64 في مجموعات من 4 محارف، ولذلك فإن قيمة يزيد طولها 1 واحدًا على مضاعف 4 لا ترمّز بايتًا كاملًا. ولا يمكن لأي أداة ترميز إنتاجها، لذا تعرض الأداة خطأ بدلًا من إرجاع عدد.
هل يغيّر تحويل عدد بين القواعد قيمته؟
لا. إنه يغيّر صيغة الكتابة فقط. فالقيم 255 وFF و74====== و/w== تمثل جميعًا العدد نفسه.