محول المتمم الثنائي
العدد -5 في 8 بتات هو 11111011، وهو النمط الدقيق الذي يحفظه المسجّل، وتعود 11111011 إلى -5. وتُرفض القيم التي لا تتسع في العرض المختار، مثل 128 في 8 بتات، بدل أن تلتف إلى قيمة خاطئة. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- القيمة
- -5
- وضع الحساب
- To binary
- عدد البتات
- 8
- ثنائي
- 11111011
- بلا إشارة
- 251
- الأدنى
- -128
- الأعلى
- 127
المتمم الثنائي هو الطريقة القياسية التي تخزّن بها الحواسيب الحديثة الأعداد الصحيحة الموقَّعة في عدد ثابت من البتات. القيمة الموجبة تحتفظ بصيغتها الثنائية العادية مع حشو يساري حتى العرض المختار؛ والقيمة السالبة تُخزَّن كباقي معياري لذلك العدد بمقياس اثنين مرفوعًا إلى العرض، بحيث يعمل البت الأعلى دلالةً على الإشارة دون حقل منفصل للمقدار والإشارة. يأخذ هذا المحول عددًا صحيحًا موقَّعًا وعرض بت (ثمانية أو ستة عشر أو اثنان وثلاثون) ويعيد سلسلة البتات الدقيقة التي سيحملها سجل، أو العكس: نمط بتات وعرض يصبحان القيمة العشرية الموقَّعة. يُرفض الفيض خارج النطاق القانوني لذلك العرض بدل الالتفاف الصامت، مما يحافظ على صدق مفاتيح التمارين وملاحظات البرمجيات الثابتة.
كيف يعمل الترميز وفك الترميز بالمتمم الثنائي
ثبّت عرض بت w لا يقل عن اثنين. الأعداد الصحيحة الموقَّعة التي تتسع هي كل الأعداد من سالب اثنين مرفوعًا إلى w ناقص واحد حتى موجب اثنين مرفوعًا إلى w ناقص واحد، ناقص واحد. الصفر هو كل البتات صفرًا.
القيمة غير السالبة ضمن النطاق تُكتب بأرقام ثنائية عادية وتُحشى بأصفار من اليسار حتى يصبح طولها w بتًا تمامًا. القيمة السالبة n تُرمَّز كالباقي الفريد لـ n بمقياس اثنين مرفوعًا إلى w في نفس الفترة المغلقة من الأنماط: أو بالعكس، اعكس كل بت للقيمة المطلقة مكتوبة في w بتًا وأضف واحدًا، وهي وصفة «اعكس وأضف واحدًا» الكلاسيكية في مقررات تنظيم الحاسوب.
ي عكس فك الترميز الخريطة: اقرأ سلسلة البتات كعدد صحيح بلا إشارة u بين صفر واثنين مرفوعًا إلى w ناقص واحد؛ إن كان البت العالي صفرًا فالقيمة الموقَّعة u، وإن كان واحدًا فهي u ناقص اثنين مرفوعًا إلى w. يجب أن تبقى القيم ضمن نطاق الأعداد الصحيحة الآمنة في JavaScript ليظل كل رقم دقيقًا عند التسلسل. الطلبات التي تفيض العرض — مثل مائة وثمانية وعشرين في ثمانية بتات — تُرفض برسالة فيض واضحة تذكر الحد الأدنى والأقصى المسموحين، بدل الالتفاف إلى سالب خاطئ قد يثق به الطالب خطأً.
حالات الاستخدام
واجبات ومختبرات تنظيم الحاسوب
تحقق من ترميز وفك قيم موقَّعة بعروض 8/16/32 بت بما في ذلك حالات الفيض أمام أوراكل مشترك واحد لمفاتيح الإجابات.
توثيق البرمجيات الثابتة وحقول البروتوكول
وثّق حقول السجلات الموقَّعة وفروق المستشعرات كسلاسل بتات دقيقة بالمتمم الثنائي بجانب القيم العشرية للمراجعة والإقلاع.
الأسئلة الشائعة
ما المتمم الثنائي؟
هو التمثيل النمطي للأعداد الصحيحة الموقَّعة بعرض ثابت w: غير السالبة تستخدم الثنائي العادي؛ والسالبة تستخدم (n mod 2^w) بحيث يحدد البت العالي النصف العلوي للنطاق بلا إشارة. الجمع والطرح يعملان بنفس دارة الحساب النمطي بلا إشارة.
أي نطاق يتسع في N بت؟
المتمم الثنائي الموقَّع بعرض w يحوي الأعداد من −2^(w−1) حتى 2^(w−1)−1. مثلاً ثمانية بتات تحوي −128 حتى 127؛ وستة عشر بتًا تحوي −32768 حتى 32767.
ماذا يحدث عند الفيض؟
لا يلتف المحول بصمت، فلا تُغطَّى إجابات واجبات خاطئة ولا أخطاء برمجيات ثابتة مخفية.
هل يمكنني التحويل في الاتجاهين؟
الذهاب والإياب لقيمة قانونية يعيد دائمًا نفس العدد الصحيح.
كيف أحسب المتمم الثنائي يدويًا؟
اكتب القيمة المطلقة بعرض البتات المختار، ثم اقلب كل بت وأضف واحدًا. فيصبح -5 في 8 بتات هو 11111011، وهو يساوي 251 إذا قُرئ دون إشارة.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/fmt/twos-complement \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"mode":"to_binary","bits":8}'const res = await fetch("https://api.kit.forhosting.com/fmt/twos-complement", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"mode": "to_binary",
"bits": 8
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fmt/twos-complement",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"mode": "to_binary",
"bits": 8
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fmt/twos-complement", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"mode":"to_binary","bits":8}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"mode":"to_binary","bits":8}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fmt/twos-complement", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"mode": "to_binary",
"bits": 8
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fmt.twos_complement",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
min_bits | 2 |
max_bits | 64 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
تسعير استدعاءات API الناجحة هو الأساس المنشور $0.002 لكل عنصر.
كيف يعمل الترميز وفك الترميز بالمتمم الثنائي
الخوارزمية حساب نمطي صحيح نقي بلا تقريب عائم وبلا بذور عشوائية وبلا طوابع زمنية وبلا استدعاءات شبكة، فنفس المدخلات تنتج دائمًا نفس JSON.
ما الذي ترسله وما الذي تستقبله
فحوص كلاسيكية: القيمة سالب خمسة مع ثمانية بتات تعطي واحد واحد واحد واحد واحد صفر واحد واحد، وفك ذلك النمط يعيد سالب خمسة، وأربعون واثنان موجبان في ستة عشر بتًا كنمط محشو بالأصفار. إن احتجت فقط تحويلًا عشريًا إلى ثنائي بلا إشارة وبلا عرض ثابت، استخدم صفحة أخرى بدل تحميل هذا العقد. أرسل mode إلزاميًا to_binary أو from_binary، وحقل bits إلزاميًا لعرض الكلمة من اثنين إلى أربعة وستين، وقيمة موقَّعة أو سلسلة بتات حسب الوضع. لـ to_binary قدّم value كعدد JSON صحيح أو سلسلة أرقام بإشارة اختيارية؛ تُقبل الأسماء البديلة n وnumber وinteger وsigned. لـ from_binary قدّم binary كسلسلة من أصفار وآحاد طولها bits؛ يُزال بادئة zero-b الاختيارية والمسافات الداخلية. غياب mode أو bits، والقيم غير الصحيحة، والأحرف غير الثنائية، والطول الخاطئ، وNaN وInfinity والفيض خارج نطاق المتمم الثنائي تفشل بـ invalid_input ولا تُحسب. عند النجاح تعيد الاستجابة mode وbits والقيمة الموقَّعة والنمط الثنائي الدقيق بطول bits والباقي بلا إشارة وmin وmax القانونيين للعرض وmethod = twos_complement. تسعير استدعاءات API الناجحة هو الأساس المنشور $0.002 لكل عنصر؛ إخفاقات التحقق لا تستهلك الرصيد المدفوع مسبقًا.
أين تظهر محولات المتمم الثنائي في العمل الفعلي
تُدخل مقررات علوم الحاسوب والتصميم الرقمي المتمم الثنائي عندما يلتقي الطلاب بالسجلات الموقَّعة وأعلام ALU وفكرة أن الطرح جمعٌ للعكس النمطي؛ يوفر أوراكل موثوق يعيد نمط البتات الدقيق والنطاق القانوني مفاتيح إجابات وعروض مختبر دون صيغ جداول هشة. توثيق البرمجيات الثابتة المدمجة والبروتوكولات يسرد حقول مستشعرات موقَّعة وفروق حرارة وتصحيحات إزاحة في كلمات متمم ثنائي بثمانية أو ستة عشر بتًا بجانب تفريغ hex للتحقق من بت الإشارة بنظرة. ملاحظات المترجمات وبيئات التشغيل تشرح كيف تُطابق int8 وint16 وint32 كلمات الآلة؛ يقارن المدرسون كود الحزم لدى الطالب بسلسلة بتات مرجعية للصفر وسالب واحد والحد الأدنى السالب والحد الأقصى الموجب لكل عرض. لأن هذه القدرة محرك parse نقي، تسعير API هو الأساس المنشور $0.002 لكل عنصر ناجح ولا يستهلك فشل التحقق الرصيد. عامل السلاسل الثنائية بلا إشارة وبلا عرض ثابت، وتفريغات hex فقط، وأنماط بتات IEEE العائمة كنوايا بحث منفصلة بصفحاتها، بدل مدّ هذا المحول ذي العرض الثابت الموقَّع أبعد من نطاقه الصادق.
حالات التكامل
تجهيزات اختبار لكود الحزم
ولّد أنماط بتات golden وفحوص فك عكسي لاختبارات وحدات مسلسلات int8/int16 دون عد البتات يدويًا.
أسئلة تقنية
كم التكلفة؟
أداة المتصفح مجانية وتعمل محليًا. طلبات API تستخدم رصيد KIT المدفوع مسبقًا بسعر $0.002 لكل عنصر ناجح؛ والإدخال غير الصالح لا يُحسب.