ForHosting KIT · الهندسة والبناء

حاسبة تدوير البتات دائريا إلى اليسار واليمين

تدوير 150 ثلاث خانات إلى اليسار في سجل من 8 بتات يعطي 180، أي 10110100 بالنظام الثنائي، فالبتات التي تخرج من طرف تعود من الطرف الآخر. تدعم الحاسبة عروضًا من 1 إلى 4096 بت. مجانية في متصفحك.

  • مجاني
  • يعمل في متصفحك
  • دون تسجيل
  • بياناتك لا تغادر جهازك
استخدمها من الويبAPIالبريدTelegramالتطبيق قريبًا
إذا أدخلت
القيمة
150
العرض
8
الإزاحة
3
الاتجاه
Left
تحصل على
القيمة العشرية
150
الإزاحة المُطبَّعة
3
النتيجة العشرية
180
النتيجة بالنظام الثنائي
10110100

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

اختاروا القيمة وعرض المسجل بدقة

لا يكون للتدوير معنى محدد إلا عند معرفة عرض البتات. فقد تنتج القيمة العددية نفسها نتيجتين مختلفتين في مسجل بعرض 8 بتات وآخر بعرض 16 بتا، لأن حد الالتفاف يقع في موضع مختلف. أدخلوا القيمة غير الموقعة بالصيغة العشرية المعتادة، أو استخدموا البادئة 0x للصيغة السداسية عشرية و0b للصيغة الثنائية.

ثم اختاروا عرضا من 1 إلى 4096 بت. يجب أن تقع القيمة كاملة ضمن العرض المختار؛ إذ يمنع رفض القيم الأكبر اقتطاعا ضمنيا قد يخفي معلومات. تعد مواضع الأصفار البادئة جزءا من المسجل حتى إن لم تظهر في الإدخال.

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

افهموا الحركة الدائرية في الاتجاهين

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

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

وإذا كان العدد الفعلي صفرا، تحفظ القيمة مباشرة من دون إجراء إزاحة غير صالحة بمقدار العرض الكامل.

اقرؤوا المخرجات وتحققوا من التطبيق

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

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

المعالجة حتمية ومحلية ومحدودة، ولا تستخدم شبكة أو عشوائية أو حالة زمنية.

فحص منطق المسجلات المضمنة

قارنوا خرج البرنامج الثابت بنمط ثنائي دقيق ثابت العرض قبل كتابة شيفرة الجهاز أو مراجعتها.

التحقق من الخطوات التشفيرية

أكدوا التدويرات الدائرية في دوال التجزئة والشفرات وعمليات المزج من دون مفاجآت حساب 32 بتا ذي الإشارة.

إنشاء متجهات اختبار للبروتوكولات

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

ما الفرق بين تدوير البتات وإزاحتها؟

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

ماذا يحدث عندما يتجاوز عدد التدوير العرض؟

يخفض العدد بتطبيق باقي القسمة على العرض. تعرض الاستجابة الإزاحة المطلوبة والإزاحة الفعلية الموحدة معا.

هل يمكن إدخال قيم سداسية عشرية أو ثنائية؟

نعم. ضعوا 0x قبل القيمة السداسية عشرية و0b قبل القيمة الثنائية. يفسر الإدخال بلا بادئة على أنه عشري.

لماذا يجب أن تقع القيمة ضمن العرض المختار؟

قد يزيل الاقتطاع التلقائي البتات العليا بصمت وينتج نتيجة مضللة. ترفض الحاسبة القيمة حتى تصححوا القيمة أو العرض صراحة.

لماذا يختلف تدوير العدد نفسه بين 8 و16 بت؟

لأن العرض يحدد موضع الالتفاف. فالبتات التي تخرج من أحد الطرفين تظهر من جديد في الطرف الآخر من السجل، والسجل ذو 8 بتات يضع هذا الحد في مكان مختلف عن السجل ذي 16 بت، فتتغير النتيجة.

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

POSThttps://api.kit.forhosting.com/elec/rotate-bits

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

curl -X POST https://api.kit.forhosting.com/elec/rotate-bits \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"value":"150","width":8,"shift":3,"direction":"left"}'
{
  "value": "150",
  "width": 8,
  "shift": 3,
  "direction": "left"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "elec.rotate_bits",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

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

لكل طلب$0.002

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

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

افهموا الحركة الدائرية في الاتجاهين

لذلك يخفض العدد المطلوب بتطبيق باقي القسمة على العرض، وتظهر القيمة الفعلية في النتيجة باسم normalized_shift.

اقرؤوا المخرجات وتحققوا من التطبيق

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

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

تكلفة كل طلب API هي $0.002. تنفذ نسخة المتصفح الحساب الحتمي نفسه محليا.

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