حاسبة تمثيل الإشارة والمقدار: ترميز الثنائي وفكّه
تحوّل حاسبة تمثيل الإشارة والمقدار العدد العشري الصحيح ذي الإشارة إلى نمط ثنائي ثابت العرض، ثم تعيد تحويل ذلك النمط إلى عدد.
شغّل الأداة مجانًا
بخلاف متمم الاثنين، يخصّص هذا التمثيل البت الأعلى أهمية للإشارة وحدها ويستخدم جميع البتات المتبقية للقيمة المطلقة. حدّد العملية وأدخل القيمة وإجمالي عرض البتات، فتحصل على بت الإشارة وبتات المقدار والمقدار العددي والنمط الكامل والقيمة المفكوكة. كما توضّح النتيجة تمثيل الصفر السالب الخاص الذي يسمح به هذا النظام العددي.
كيفية ترميز عدد صحيح ذي إشارة
اختر الترميز، وأدخل عددًا صحيحًا بالأساس 10 في حقل القيمة، ثم حدّد عرضًا إجماليًا من 2 إلى 53 بتًا. تفصل الحاسبة أولًا الإشارة عن المقدار المطلق. ينتج عن الإدخال السالب بت إشارة في البداية قيمته 1، بينما ينتج عن الصفر والإدخالات الموجبة بت إشارة قيمته 0. بعد ذلك تحوّل الحاسبة المقدار إلى صيغة ثنائية وتضيف أصفارًا إلى اليسار حتى يشغل العدد الثنائي عددًا من البتات يقل ببت واحد تمامًا عن العرض المحدد. يُضم بت الإشارة إلى المقدار المستكمل لتكوين النمط النهائي. على سبيل المثال، المقدار 37 هو 0100101 في سبعة بتات، ولذلك يصبح -37 في ثمانية بتات 10100101. لا يمكن الاستفادة من موضع الإشارة لزيادة المجال الموجب أو السالب. عند العرض w، يكون أكبر مقدار مسموح به هو 2 مرفوعًا إلى القوة w ناقص 1، ثم ناقص 1. تُرفض القيم الواقعة خارج هذا المجال المتناظر بدلًا من اقتطاعها أو تدويرها أو تغييرها دون تنبيه، ولذلك تصلح النتيجة بصورة موثوقة للتمارين والوثائق ومتجهات الاختبار.
كيفية فك نمط ثنائي
اختر فك الترميز وأدخل قيمة ثنائية تحتوي على عدد من الخانات يساوي عرض البتات المحدد تمامًا. للأصفار البادئة أهمية، ولذلك يُستقبل النمط بوصفه نصًا لا عددًا عشريًا. تُفسَّر الخانة الأولى على أنها الإشارة وحدها: تعني 0 أن القيمة غير سالبة، وتعني 1 أنها سالبة. وتُقرأ الخانات الباقية بوصفها مقدارًا ثنائيًا بلا إشارة. إذا لم يكن المقدار صفرًا، تُطبّق الإشارة للحصول على العدد العشري الصحيح بعد الفك. تحتفظ المخرجات بالنمط الأصلي، وتفصل أيضًا sign_bit وmagnitude_bits وmagnitude لكي تتمكن من فحص كل مرحلة على حدة. فالنمط 10100101، مثلًا، له بت إشارة 1 وبتات مقدار 0100101 ومقدار 37 وقيمة عشرية -37. تشترط الحاسبة تطابق العرض المعلن مع طول النمط الفعلي. وهي ترفض المسافات والبادئات مثل 0b والفواصل وأي أرقام غير 0 أو 1، مما يمنع استخراج إجابة تبدو صحيحة من سلسلة بتات ملتبسة.
فهم المجال والصفر السالب
يسهل قراءة تمثيل الإشارة والمقدار لأن الإشارة تُخزّن على حدة، لكن لهذا التنظيم نتائج تختلف عن متمم الاثنين. المجال العددي المتاح متناظر: يمثل نمط من ثمانية بتات القيم العادية من -127 إلى 127، وليس من -128 إلى 127. وهناك أيضًا ترميزان للصفر العددي. تمثل البتات التي كلها أصفار الصفر الموجب، بينما يمثل بت إشارة قيمته 1 تتبعه بتات مقدار كلها أصفار الصفر السالب. يُفك الترميز في الحالتين إلى القيمة العددية 0، ولذلك يسجّل الحقل negative_zero صراحةً أي التمثيلين ورد في الإدخال. يفيد هذا الفرق عند فحص صيغ الحوسبة التاريخية، ومفاهيم الإشارة في الفاصلة العائمة، والأمثلة التعليمية، وتمارين العتاد التي يكون فيها نمط البتات نفسه مهمًا. لا تحوّل الحاسبة ضمنيًا بين تمثيل الإشارة والمقدار ومتمم الاثنين. إذا كان نظام المصدر يستخدم تمثيلًا آخر للأعداد ذات الإشارة، فتعرّف عليه قبل تفسير بتاته. ولإجراء مقارنات موثوقة، حافظ على عرض البتات نفسه في سلسلة الحسابات كلها؛ فالحشو يغيّر النمط الكامل لكنه لا يغيّر المقدار أو العدد الصحيح المفكوك.
حالات الاستخدام
مراجعة تمارين المنطق الرقمي
تحقق من بتات الإشارة وحشو المقدار والمجالات القابلة للتمثيل والإجابات المفكوكة عند عرض محدد.
إنشاء متجهات اختبار حتمية
أنشئ أنماطًا دقيقة للإشارة والمقدار وقيمًا وسيطة منظّمة لاختبار أدوات الترميز أو فك الترميز.
فحص صيغ عددية قديمة
فسّر أنماط البتات المخزنة مع الحفاظ على الفرق المهم بين الصفر الموجب والصفر السالب.
الأسئلة الشائعة
ما تكلفة العملية الحسابية عبر API؟
تبلغ تكلفة كل طلب API مقدار $0.002. ويمكن إجراء الحساب الحتمي نفسه مجانًا في متصفحك أيضًا.
ما عروض البتات المدعومة؟
يمكنك اختيار أي عرض إجمالي من 2 إلى 53 بتًا، بما في ذلك بت الإشارة.
لماذا المجال أصغر من مجال متمم الاثنين؟
يخزّن بت واحد الإشارة فقط، وتخزّن البتات الباقية المقدار؛ لذلك يكون أكبر مقدار في ثمانية بتات هو 127.
كيف يُعالَج الصفر السالب؟
يُفك النمط ذو بت الإشارة 1 والمقدار المكوّن كله من أصفار إلى القيمة العددية 0، ويعيد negative_zero بالقيمة الصحيحة.
هل يمكن تضمين البادئة 0b أو مسافات؟
لا. يجب أن تحتوي قيمة فك الترميز على العدد المطلوب من الخانات الثنائية تمامًا، من دون بادئة أو مسافات أو فواصل.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/elec/signed-magnitude \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"operation":"encode","value":"-37","bit_width":8}'const res = await fetch("https://api.kit.forhosting.com/elec/signed-magnitude", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"operation": "encode",
"value": "-37",
"bit_width": 8
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/elec/signed-magnitude",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"operation": "encode",
"value": "-37",
"bit_width": 8
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/elec/signed-magnitude", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"operation":"encode","value":"-37","bit_width":8}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"operation":"encode","value":"-37","bit_width":8}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/elec/signed-magnitude", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"operation": "encode",
"value": "-37",
"bit_width": 8
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "elec.signed_magnitude",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |