محوّل الأساس
أعد كتابة عدد من أساس إلى آخر، من الأساس 2 حتى الأساس 36: العدد 1010 بالثنائي يساوي 10 بالعشري. تبقى القيم الكبيرة دقيقة حتى آخر خانة، وتُحفظ إشارة السالب في البداية. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- القيمة
- 1010
- من الأساس
- 2
- إلى الأساس
- 10
- النتيجة
- 10
يحوّل سلسلة أرقام من أساس إلى آخر بين الأساس 2 والأساس 36 باستعمال أعداد صحيحة كبيرة عالية الدقّة، محافظًا على إشارة ناقص بادئة اختيارية.
ماذا يعني تغيير الأساس فعلًا
يدل الأساس على عدد الرموز المختلفة التي يستخدمها نظام العد قبل أن ينتقل إلى خانة جديدة. يستخدم النظام العشري عشرة رموز، والثنائي رمزين، والست عشري ستة عشر رمزًا، والأساس 36 يستخدم الأرقام العشرة مع الحروف الستة والعشرين كلها. الكمية نفسها لا تتغير أبدًا، بل تتغير طريقة كتابتها فقط. لذلك فإن 1010 بالثنائي و10 بالعشري هما العدد نفسه. يقرأ المحول أرقامك بأساس المصدر، ويحسب العدد الصحيح الذي تمثله، ثم يكتبه من جديد بأساس الهدف. وسواء كان التحويل من الثنائي إلى الست عشري أو من الست عشري إلى العشري أو من العشري إلى الأساس 36، فالطريقة واحدة.
الأخطاء التي يتجنبها هذا المحول
تفقد أدوات شائعة كثيرة جزءًا من الدقة دون تنبيه عندما يتجاوز العدد 2^53، فتخرج الخانات الأخيرة من المعرّفات أو البصمات الطويلة خاطئة. هنا تُعامل كل قيمة كعدد صحيح دقيق يصل إلى 200 حرف، فلا يُقرَّب شيء. وإذا وُجد رمز لا ينتمي إلى أساس المصدر، مثل 2 في الثنائي أو G في الست عشري، فإن الأداة تنبّه إليه بدل تجاهله. ولا تُقبل البادئات مثل 0x، حتى يبقى الأساس دائمًا هو الذي اخترته. والأداة تتعامل مع الأعداد الصحيحة فقط، فلا تُحوَّل الفاصلة العشرية ولا الكسور.
الإدخال المقبول والقواعد الصارمة
يجب أن تكون value سلسلةً غير فارغة لا تتجاوز 200 حرف، وتُحدَّد النتيجة المرمَّزة كذلك عند 200 حرف. ولا يوجد دعم للكسور أو الفاصلة العشرية — أعداد صحيحة فقط.
النتيجة الدقيقة نفسها في كل تحويل
ولأن الحساب يجري على BigInt، لا توجد خسارة دقّة صامتة كتلك التي قد تعانيها parseInt وNumber.toString(radix) قرب 2^53 وما فوقه، مما يجعل هذا آمنًا للتجزئات الكبيرة أو المعرّفات أو قيم الألوان أو أقنعة البتّات. وتشمل الاستعمالات الشائعة التحويل من الثنائي إلى الست عشري ومن الست عشري إلى العشري، وترميز المعرّفات في أبجدية أساس-36 مضغوطة، وتفحّص كيف يبدو عدد عبر الأسس.
حالات الاستخدام
تفحّص المطوّرين للأعداد
حوّل بين الثنائي والثماني والعشري والست عشري أثناء تنقيح أقنعة البتّات أو الأعلام أو قيم الألوان.
معرّفات أساس-36 مضغوطة
رمّز معرّفات عشرية كبيرة في سلسلة أساس-36 أقصر، أو فُكّ ترميزها بدقّة بالأعداد الصحيحة الكبيرة.
الأسئلة الشائعة
هل يعالج الأعداد الكبيرة جدًّا؟
نعم. تُحلَّل القيم بوصفها BigInt، فيكون التحويل دقيقًا بلا خسارة فاصلة عائمة حتى فيما وراء 2^53.
هل تُسمح الأعداد السالبة والأحرف؟
تُحفَظ إشارة ناقص بادئة، وتخدم الأحرف A-Z أرقامًا فوق 9، ويُحوَّل الإدخال إلى أحرف كبيرة فتساوي 'ff' القيمة 'FF'.
كيف أحول من الثنائي إلى الست عشري؟
اختر 2 أساسًا للمصدر و16 أساسًا للهدف، ثم اكتب الأرقام الثنائية. تصلح الخطوات نفسها لأي زوج من الأسس بين 2 و36، مثل التحويل من الست عشري إلى العشري.
هل يمكنني كتابة 0x أو 0b قبل العدد؟
لا. تُرفض هذه البادئات لأن الأساس يُختار على حدة ولا يُستنتج من العدد. احذف 0x أو 0b واختر الأساس 16 أو الأساس 2 بدلًا منها.
ما الرموز التي يستخدمها الأساس 36؟
الأرقام من 0 إلى 9 تليها الحروف من A إلى Z، لذلك يتوقف الأساس 16 عند F ويستخدم الأساس 36 الأبجدية كلها. وتُعد الحروف الكبيرة والصغيرة الرمز نفسه.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/dev/number-base \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":"FF","from_base":16,"to_base":10}'const res = await fetch("https://api.kit.forhosting.com/dev/number-base", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": "FF",
"from_base": 16,
"to_base": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/number-base",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": "FF",
"from_base": 16,
"to_base": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/number-base", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":"FF","from_base":16,"to_base":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":"FF","from_base":16,"to_base":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/number-base", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"value": "FF",
"from_base": 16,
"to_base": 10
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.number_base",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_value_chars | 200 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
تحويل الأساس بالأعداد الصحيحة الكبيرة
ولأن القيمة تُحفَظ بوصفها BigInt لا عددًا في جافاسكربت، تكون التحويلات دقيقة لمقادير كبيرة عشوائيًّا بلا خسارة فاصلة عائمة. يحلّل dev.number_base قيمة value كسلسلة أرقام في from_base، ويراكمها في BigInt، ثم يعيد ترميز ذلك العدد الصحيح في to_base. وكلٌّ من from_base وto_base عدد صحيح في المدى من 2 إلى 36؛ وتستعمل الأرقام 0-9 يليها A-Z، فيستعمل الأساس 16 من 0 إلى F ويستعمل الأساس 36 الأبجدية كاملةً. ويُحوَّل الإدخال إلى أحرف كبيرة قبل التحليل، فتتكافأ 'ff' و'FF' الست عشريتان، ويُفحص كل حرف ليكون رقمًا صحيحًا أدنى من from_base تمامًا — وأي شيء غير ذلك يُعيد خطأ invalid_input مُصنَّفًا. وتُعيد الاستجابة value الأصلية وfrom_base وto_base وسلسلة النتيجة المرمَّزة، فتُعيد '1010' الثنائية من الأساس 2 إلى الأساس 10 القيمة '10'.
الإدخال المقبول والقواعد الصارمة
ويُسمح بإشارة ناقص بادئة واحدة وتُحفَظ خلال الرحلة كاملةً، فتُحوَّل الأعداد السالبة تحويلًا صحيحًا، لكن بادئات الأساس مرفوضة صراحةً: فأي قيمة تبدأ بـ 0x أو 0X أو 0b أو 0B تُعيد invalid_input، لأن الأساس يُعطى بـ from_base لا يُستنتَج من بادئة. ويجب أن يكون كلٌّ من from_base وto_base عددًا صحيحًا ضمن 2 إلى 36؛ وقيمة خارج تلك النافذة، أو رقم غير قانوني للأساس المصدر، أو سلسلة فارغة أو مفرطة الطول، أو ناقص مجرَّد، يُطلق كلٌّ منها خطأ invalid_input مُصنَّفًا برسالة تسمّي العطب، كي يلتقطه المستدعون ويُظهروه نظيفًا.
حتميّ، دقيق، ومُشترَك مع API
التحويل دالّة صرفة في value وfrom_base وto_base، بلا ساعة ولا إعداد لغوي محلي ولا عشوائية، فيُعطي الطلب نفسه دائمًا النتيجة نفسها ويبقى المثال المشحون تثبيتة انحدار مستقرّة.
حالات التكامل
تحويل أساس بالجملة
استدعِ API على عمود من القيم لتحويل مجموعة بيانات كاملة بين أساسين في مهمّة واحدة.
أسئلة تقنية
أي الأسس مدعومة؟
أي أساس عدد صحيح من 2 إلى 36 لكلٍّ من from_base وto_base، باستعمال الأرقام 0-9 ثم A-Z.
هل يمكنني استعمال بادئتَي 0x أو 0b؟
لا. تُرفض القيم المبدوءة ببادئة بـ invalid_input؛ إذ يأتي الأساس من from_base لا من بادئة.
ما الحدود والتكلفة؟
تُحدَّد value والنتيجة كلٌّ عند 200 حرف؛ وwidget المتصفح مجاني، ولا يفوتر API سوى المهام الناجحة عند $0.002.