ForHosting KIT · أدوات المطورين

حساب المتمم لاثنين

حوّل في الاتجاهين بعرض ثابت: العدد -18 في 8 بتات هو 11101110، وقراءة 11101110 بعرض 8 بتات تعيد -18، مع عرض من 2 إلى 53 بت ودون التفاف صامت. مجاناً في متصفحك.

  • مجاني
  • يعمل في متصفحك
  • دون تسجيل
  • بياناتك لا تغادر جهازك
استخدمها من الويبAPIالبريدTelegramالتطبيق قريبًا

المتمم لاثنين هو التمثيل القياسي ذي العرض الثابت للأعداد الصحيحة الموقّعة في المعالجات وتنسيقات الملفات والسجلات وبروتوكولات الشبكات. يعمل هذا المحوّل في الاتجاهين: أدخلوا عددًا صحيحًا وعرضًا بالبت للحصول على النمط الثنائي الدقيق، أو أدخلوا نمطًا ثنائيًا وعرضه لاستعادة العدد الصحيح الموقّع. يجري التحقق من كل طلب بدل تدوير القيم التي لا تتسع بصمت. لذلك تلائم النتيجة التعلّم وتصحيح الأخطاء والتوثيق وإنشاء بيانات الاختبار الآلية، حيث قد يغيّر بت إشارة واحد معنى الحقل كاملًا.

اختاروا العرض قبل التحويل

لا تكون لقيمة المتمم لاثنين دلالة محددة إلا عند معرفة عرضها. فقد تمثل البتات النهائية نفسها قيمًا مختلفة إذا فُسّرت على أنها كلمة من ثمانية بتات أو ستة عشر بتًا أو اثنين وثلاثين بتًا، لأن البت الواقع أقصى اليسار ضمن العرض المختار يحدد الإشارة. ابدأوا باختيار عرض من 2 إلى 53 بتًا، ثم اختاروا اتجاه التحويل.

للتحويل من عدد صحيح إلى ثنائي، أدخلوا عددًا صحيحًا موقّعًا. يتحقق المحوّل من المجال القانوني الذي يبدأ من سالب اثنين مرفوعًا إلى bits ناقص واحد وينتهي عند اثنين مرفوعًا إلى bits ناقص واحد، ثم ناقص واحد. لذلك تقبل كلمة من ثمانية بتات القيم من -128 إلى 127.

إذا خرج العدد عن هذا المجال، يعيد الطلب خطأ إدخال بدل حذف البتات العليا أو إنتاج تدوير مضلل. يفيد هذا السلوك الصارم في مراجعة تعريفات السجلات وحدود برامج التسلسل والتمارين وتخطيطات البيانات. تحتوي النتيجة الناجحة دائمًا على عدد الخانات المطلوب بالضبط، بما في ذلك الأصفار البادئة للقيم غير السالبة والآحاد البادئة اللازمة للتمثيل السالب ذي العرض الثابت.

افهموا آلية الترميز وفك الترميز

عند ترميز عدد صحيح غير سالب، يُستخدم التدوين العادي للأساس اثنين وتُضاف أصفار إلى اليسار حتى يبلغ العرض المختار. أما العدد الصحيح السالب، فيضيف المحوّل قيمته إلى اثنين مرفوعًا إلى العرض، ثم يكتب ذلك الباقي غير السالب بالثنائي. يكافئ هذا التعريف المعياري الإجراء اليدوي المعروف بقلب جميع بتات المقدار الموجب وإضافة واحد، لكنه يتجنب الحالات الخاصة ويعرض العملية الرياضية مباشرة.

يعكس فك الترميز هذه القاعدة. يقرأ المحوّل أولًا سلسلة البتات ككمية غير موقّعة. إذا كان البت الأول صفرًا، تكون تلك الكمية هي الجواب الموقّع.

وإذا كان واحدًا، يطرح المحوّل اثنين مرفوعًا إلى العرض لاستعادة القيمة السالبة. يجب ألا يحتوي الإدخال الثنائي إلا على الأصفار والآحاد، وأن يساوي طوله عدد المحارف المعلن بالضبط. لا يُخمّن العرض مطلقًا، ولا تُضاف حشوة عند فك الترميز، ولا تُقتطع الخانات الزائدة.

تجعل هذه الخيارات التحويل ذهابًا وإيابًا قابلًا للتوقع: لكل عدد صحيح مقبول نمط دقيق واحد، وفك ذلك النمط بالعرض نفسه يستعيد العدد الأصلي.

استخدموا تمثيلات دقيقة في الأعمال الفعلية

تفيد هذه القدرة كلما لزم مقارنة قيمة عشرية مقروءة بحقل موقّع منخفض المستوى. يستطيع مطورو البرامج الثابتة التحقق من فروق المستشعرات وسجلات الحالة وأمثلة البروتوكولات قبل نسخها إلى الوثائق. ويستطيع مطورو التطبيقات إنشاء بيانات مرجعية لحزم البايتات الموقّعة، والتحقق من سلوك الحدود، ومعرفة ما إذا كانت قيمة كبيرة غير موقّعة تمثل في الحقيقة عددًا سالبًا بالمتمم لاثنين.

كما يستطيع الطلاب مراجعة عملهم مع رؤية النمط الدقيق ذي العرض الثابت بدل صيغة ثنائية مختصرة تخفي امتداد الإشارة. الحساب حتمي ومحلي داخل معالج التحليل، ولا يستعمل نموذجًا أو خدمة خارجية أو مصدرًا عشوائيًا أو ساعة. حافظوا على توافق العرض المعلن مع تنسيق التخزين الذي تفحصونه.

إذا كان البروتوكول يحدد حقلًا من اثني عشر بتًا، ففكوا الخانات الاثنتي عشرة كلها، بما فيها الأصفار أو الآحاد البادئة. إن تغيير العرض يغيّر موضع الإشارة وقد يغيّر القيمة المفسرة بصورة صحيحة.

فحص قيم السجلات الموقّعة

حوّلوا الحدود والأمثلة العشرية الموثقة إلى أنماط بتات بالعرض الدقيق لمراجعة العتاد والبرامج الثابتة.

إنشاء بيانات اختبار لبرامج التسلسل

أنشئوا نتائج ثنائية ثابتة للقيم الموجبة والسالبة والدنيا والعليا والصفر.

فك لقطات البروتوكولات

فسّروا حقلًا ثنائيًا ثابت العرض بوصفه العدد الصحيح الموقّع المقصود في مواصفات البروتوكول.

ما المجال الذي يتسع له عرض محدد؟

يخزن عرض من w بت أعدادًا صحيحة موقّعة من -2^(w-1) إلى 2^(w-1)-1.

لماذا يجب أن يطابق الإدخال الثنائي العرض تمامًا؟

لأن البت الأول عند ذلك العرض يحدد الإشارة، وقد يؤدي تخمين العرض أو حشوه بصمت إلى تغيير النتيجة.

ماذا يحدث إذا لم يتسع العرض للعدد الصحيح؟

تحصل على رسالة خطأ واضحة بدلاً من نتيجة ملتفة أو مقصوصة. فكلمة من 8 بتات مثلاً لا تقبل إلا من -128 إلى 127، ويُرفض أي عدد خارج هذا المجال بدلاً من أن يفقد بتاته العليا.

كيف يُرمَّز العدد السالب؟

يُضاف العدد إلى اثنين مرفوعاً إلى قوة العرض، ثم يُكتب الناتج بالنظام الثنائي. وهذا يعادل قلب كل بتات العدد الموجب وإضافة واحد، ولذلك يصبح -18 في 8 بتات 11101110.

كيف أعيد سلسلة البتات إلى عدد؟

تُقرأ البتات أولاً كعدد بلا إشارة. فإذا كان البت الأيسر صفراً فهذه هي الإجابة، وإذا كان واحداً يُطرح اثنان مرفوعاً إلى قوة العرض، فتعطي 11101110 بعرض 8 بتات القيمة -18.

كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.

POSThttps://api.kit.forhosting.com/dev2/two-complement-convert

صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.

curl -X POST https://api.kit.forhosting.com/dev2/two-complement-convert \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"mode":"integer_to_binary","bits":8,"integer":-18,"binary":"11101110"}'
{
  "mode": "integer_to_binary",
  "bits": 8,
  "integer": -18,
  "binary": "11101110"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev2.two_complement_convert",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.

لكل طلب$0.002

السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.

min_bits2
max_bits53
HTTPالرمزالمعنى
401unauthorizedمفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك.
402insufficient_balanceرصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة.
404unknown_typeنوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب.
429rate_limitedتجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة.

استخدموا تمثيلات دقيقة في الأعمال الفعلية

للأتمتة، أرسلوا الوضع والعرض وحقل العدد الصحيح أو الثنائي المناسب عبر API؛ ويستخدم كل عنصر ناجح السعر الأساسي المنشور $0.002.

ماذا يحدث عندما لا يتسع العرض للعدد؟

يفشل التحويل بخطأ invalid_input يذكر المجال المسموح. ولا تُدوّر القيمة أو تُقتطع مطلقًا.

هل يمكن إجراء التحويل في الاتجاهين؟

نعم. استخدموا integer_to_binary لترميز عدد صحيح موقّع، وbinary_to_integer لفك نمط ثابت العرض.

ما تكلفة طلب API؟

يستخدم كل عنصر API ناجح السعر الأساسي المنشور $0.002. وتُرفض المدخلات غير الصالحة قبل إنتاج نتيجة.

اطّلع على توثيق KIT الكامل ←