طريقة الاستخدام
- أدخل العدد الذي تريد تحويله في حقل «العدد».
- اختر الأساس المكتوب به من قائمة «أساس المدخلات»، من 2 إلى 36 أو Base62.
- اقرأ النتيجة بالثنائي والثماني والعشري والست عشري وBase36 وBase62 في آن واحد.
- لأي أساس آخر، اختره من قائمة «أساس مخصص».
أعداد لا بايتات
تحوّل هذه الأداة قيمة العدد. فالعدد العشري 255 هو 11111111 بالثنائي، و377 بالثماني، وff بالست عشري، و73 في Base36.
أما ترميزات البايتات مثل Base16 وBase2 فتقوم بشيء آخر: إنها ترمّز النصوص أو الملفات. فالنص 255 مكوّن من ثلاثة أحرف، تُخزَّن على هيئة البايتات 32 35 35 بالست عشري، أو 00110010 00110101 00110101 بالثنائي. استخدم هذه الصفحة للحصول على القيمة الست عشرية لعدد، واستخدم أدوات ترميز البايتات للحصول على القيمة الست عشرية لأحرف أو لملف.
كيف تعمل الأنظمة الموضعية
في كل نظام، تساوي قيمة كل خانة الأساسَ مرفوعًا إلى قوة تساوي موضعها، مع العدّ من اليمين بدءًا من الصفر. فالعدد الست عشري ff يساوي 15 × 16 + 15 = 255، والعدد الثنائي 11111111 يساوي 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255. وتكمل الأنظمة التي يزيد أساسها على 10 خاناتها بالأحرف، فيعني a القيمة 10 ويعني z القيمة 35 في Base36. ويضيف Base62 حالة الأحرف الأخرى أيضًا، لذا تختلف فيه قيم الأحرف الكبيرة عن الصغيرة.
تمثّل الخانة الست عشرية الواحدة 4 بتات بالضبط، والخانة الثمانية الواحدة 3 بتات. ولهذا يستخدم المبرمجون الست عشري والثماني طريقةً مختصرة لكتابة الثنائي: إذ يصبح 1111 1111 هو ff مجموعةً بعد مجموعة.
الأعداد الكبيرة والسالبة
يستخدم المحوّل أعدادًا صحيحة غير محدودة الدقة (BigInt في JavaScript)، فتبقى الأعداد الطويلة دقيقة. وتفقد كثير من الآلات الحاسبة وأعداد JavaScript العادية دقتها فوق 9007199254740991 (أي 2 مرفوعًا إلى القوة 53 ناقص 1). فمثلًا، تُرجع parseInt('ffffffffffffffff', 16) القيمة 18446744073709552000، بينما القيمة الصحيحة، وهي أكبر عدد صحيح بلا إشارة بطول 64 بت، هي 18446744073709551615.
يُحوَّل العدد السالب مع إشارة الطرح، فيصبح -255 بالست عشري -ff. وهذا ليس تمثيل المتمم الثنائي (two's complement) المستخدم للأعداد الصحيحة ثابتة العرض في الذاكرة. وللحصول عليه، أضف أولًا 2 مرفوعًا إلى قوة تساوي العرض: مع 8 بتات، -1 + 256 = 255، أي ff. ولا تُدعم إلا الأعداد الصحيحة، لا الكسور. ويجري كل شيء داخل متصفحك.
تحويل الأنظمة العددية في الشيفرة البرمجية
// JavaScript
parseInt('ff', 16); // 255
(255).toString(2); // '11111111'
BigInt('0xffffffffffffffff').toString(10); // '18446744073709551615'
# Python
int('ff', 16) # 255
bin(255), oct(255), hex(255) # ('0b11111111', '0o377', '0xff')
الأسئلة الشائعة
كيف أحوّل من الثنائي إلى العشري؟
أدخل العدد الثنائي، واختر «ثنائي (2)» في «أساس المدخلات»، ثم اقرأ النتيجة العشرية. ويدويًا، اجمع القيم الموضعية لكل خانة قيمتها 1: العدد الثنائي 1010 يساوي 8 + 2 = 10.
كيف أحوّل من العشري إلى الست عشري؟
أدخل العدد مع اختيار «عشري (10)»، ثم اقرأ النتيجة الست عشرية. ويدويًا، اقسم على 16 مرارًا واكتب البواقي بترتيب عكسي: 255 مقسومًا على 16 يساوي 15 والباقي 15، ما يعطي ff.
هل يوجد حد لحجم العدد؟
لا يوجد حد ثابت. تستخدم الأداة حساب BigInt، لذا يُحوَّل العدد المكوّن من مئات الخانات بدقة تامة. وكل ما في الأمر أن الأعداد الطويلة جدًا تستغرق وقتًا أطول قليلًا.
لماذا تختلف القيمة الست عشرية للعدد 255 هنا عن نتيجة أداة ترميز Base16؟
هل يمكنني تحويل أعداد ذات جزء كسري؟
لا. يعمل المحوّل مع الأعداد الصحيحة فقط. فالكسور مثل 0.1 كثيرًا ما لا يكون لها تمثيل دقيق في أساس آخر، لذا فهي خارج نطاقه.