تحويل BCD إلى ثنائي
تفك هذه الأداة قيمة عشرية مرمّزة ثنائيًا وفق BCD 8421 المعبأ، وتعيد صورتها العشرية المألوفة وتمثيلها الثنائي العادي.
شغّل الأداة مجانًا
وهي تفحص المدخل نيبلاً بعد نيبِل، لذلك تبلغ عن مجموعات البت من 1010 إلى 1111 بوصفها غير صالحة بدل تحويلها إلى أرقام مضللة. تقبل الأداة الفواصل المقروءة والبادئة الاختيارية 0b، وتحافظ النتائج النصية على الدقة حتى مع القيم التي تتجاوز نطاق الأعداد الصحيحة الآمن في JavaScript.
افهموا ما يمثله BCD المعبأ
لا يمثل الترميز العشري الثنائي 8421 المعبأ العدد الصحيح بالطريقة نفسها التي يستخدمها النظام الثنائي العادي. ففي BCD يحصل كل رقم عشري على نيبِل مستقل من أربع بتات: يصبح 2 هو 0010، ويصبح 5 هو 0101، ويصبح 9 هو 1001. لذلك يكتب العدد العشري 259 على الصورة 0010 0101 1001. إذا قرأتم سلسلة البت كاملة بوصفها عددًا ثنائيًا عاديًا فستحصلون على قيمة مختلفة، لأن النظام الثنائي العادي يطبق قوى العدد اثنين على الكلمة كلها، بدل إعادة أوزان 8-4-2-1 عند كل رقم عشري. تنفذ الأداة المرحلتين اللازمتين؛ فتتحقق أولاً من كل نيبِل وتفك ترميزه لاستعادة تسلسل الأرقام العشرية، ثم تحول العدد العشري الدقيق إلى تمثيله الثنائي العادي. تشمل الاستجابة بتات BCD بعد التطبيع والنتيجة العشرية والثنائية وعدد أرقام BCD، مما يتيح مراجعة كل مرحلة في التعليم وفحص الدارات والاختبارات المؤتمتة.
أدخلوا مجموعات البت وتحققوا منها
أدخلوا مجموعة كاملة واحدة أو أكثر من أربع بتات في الحقل bcd. يمكنكم كتابة البتات متصلة، أو فصل وحدات النيبِل بمسافات أو شرطات سفلية أو شرطات، مع إضافة 0b اختياريًا في بداية القيمة. تزال الفواصل قبل التحقق، ولذلك تصف 0010 0101 1001 و0b0010_0101_1001 القيمة المعبأة نفسها. يجب أن يكون كل محرف متبقٍ صفرًا أو واحدًا، وأن يقبل إجمالي عدد البتات القسمة على أربعة. والأهم أن يقع كل نيبِل بين 0000 و1001. فالأنماط من 1010 إلى 1111 قيم ثنائية موجودة، لكنها ليست أرقامًا عشرية مشروعة في BCD 8421 القياسي؛ لذا ترفضها الأداة مع تحديد موضعها بدقة بدلاً من قبول بيانات تالفة بصمت. تقبل الأصفار البادئة وتبقيها في حقل BCD المطبع، بينما تصاغ المخرجات العشرية والثنائية في صورتها القياسية. فمثلاً ينتج عن BCD 0000 0101 العدد العشري 5 والثنائي 101 مع الاحتفاظ بترميز النيبِلين الأصلي في نتيجة bcd.
استخدموا نتائج دقيقة في مسارات الحساب الرقمي
تعاد النتيجتان العشرية والثنائية كسلسلتين نصيتين عن قصد. فقد تحتوي سجلات العرض والأجهزة المالية والعدادات ومتجهات الاختبار على أرقام أكثر مما يستطيع نوع Number في JavaScript تمثيله بدقة. وقد يؤدي التحويل عبر حساب الفاصلة العائمة إلى تقريب معرّف كبير أو قياس قبل وصوله إلى المرحلة التالية. تبني هذه الخوارزمية تسلسل الأرقام العشرية مباشرة، وتحوله بحساب صحيح دقيق، وتدعم الحد المنشور دون اتصال بالشبكة أو عشوائية أو سلوك يعتمد على الوقت. لذلك تكون الاستدعاءات المتكررة حتمية وآمنة للمقارنة في اختبار ذهبي. في مسار عتادي، استخدموا bcd لتأكيد القيمة المستلمة، وdecimal للسجلات الموجهة إلى المشغل، وbinary لوحدات الحساب أو تحديد حجم السجلات. تفك الأداة BCD 8421 المعبأ غير الموقع فقط؛ ولا تستنتج نيبِلات الإشارة أو ترميزات المحارف غير المعبأة أو ترميز الزيادة-3 أو العشري الكثيف التعبئة أو بتات الشركات المصنّعة.
حالات الاستخدام
فحص تفريغ سجل BCD
فكوا البتات المجمعة إلى عدد عشري للفحص وإلى ثنائي عادي لاستخدامه في العمليات الحسابية اللاحقة.
التحقق من تمارين المنطق الرقمي
تأكدوا من صلاحية كل نيبِل BCD مقترح وقارنوا القيمة المفكوكة بصورتها في الأساس اثنين.
تطبيع متجهات الاختبار
حوّلوا عينات BCD المقروءة ذات الفواصل إلى سلاسل عشرية وثنائية وBCD مدمجة وثابتة للاختبارات.
الأسئلة الشائعة
ما تكلفة عملية تحويل واحدة؟
تبلغ تكلفة كل عنصر عبر API مقدار $0.002؛ ويمكن تشغيل إصدار المتصفح محليًا مجانًا.
لماذا يختلف BCD عن النظام الثنائي العادي؟
يرمّز BCD كل رقم عشري منفردًا في أربع بتات، بينما يوزع النظام الثنائي العادي قوى العدد اثنين على القيمة كاملة.
ما تنسيق BCD المدعوم؟
تدعم الأداة BCD 8421 المعبأ غير الموقع، مع رقم عشري واحد في كل نيبِل من أربع بتات.
لماذا ترفض القيم من 1010 إلى 1111؟
تمثل هذه الوحدات القيم من 10 إلى 15 ثنائيًا، لكن نيبِل BCD لا يجوز أن يمثل إلا رقمًا عشريًا من 0 إلى 9.
هل يمكن إدراج مسافات أو البادئة 0b؟
نعم. تقبل المسافات والشرطات السفلية والشرطات والبادئة 0b في البداية، ثم تزال أثناء التطبيع.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/elec/bcd-to-binary \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"bcd":"0010 0101 1001"}'const res = await fetch("https://api.kit.forhosting.com/elec/bcd-to-binary", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"bcd": "0010 0101 1001"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/elec/bcd-to-binary",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"bcd": "0010 0101 1001"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/elec/bcd-to-binary", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"bcd":"0010 0101 1001"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"bcd":"0010 0101 1001"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/elec/bcd-to-binary", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"bcd": "0010 0101 1001"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "elec.bcd_to_binary",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_digits | 256 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |