حاسبة الإزاحة على مستوى البت (إزاحة لليسار/لليمين)
مرشد
آلة حاسبة للإزاحة الثنائية
قم بإجراء عمليات الإزاحة لليسار والإزاحة لليمين الحسابية والإزاحة لليمين المنطقية على الأعداد الصحيحة مع تصور ثنائي فوري. أدخل رقمًا بالصيغة العشرية أو الثنائية أو الست عشرية أو الثمانية، واختر مقدار الإزاحة، وشاهد بالضبط كيف تتحرك كل بت - بما في ذلك الحمل والفائض.
كيف تستعمل
أدخل رقمك بأي تنسيق مدعوم (عشري، ثنائي مع البادئة 0b، ست عشري مع البادئة 0x، أو ثماني مع البادئة 0o). حدد عرض البت (8، 16، 32، أو 64 بت)، واختر نوع عملية الإزاحة، واضبط مقدار الإزاحة، وتتحدث النتيجة في الوقت الفعلي. يبرز التصور الثنائي بالضبط البتات التي تم إزاحتها وأين حدث الفائض أو تمديد الإشارة.
سمات
- ثلاث عمليات إزاحة – إزاحة لليسار (<>)، وإزاحة لليمين المنطقية (>>>) مع اختلافات بصرية واضحة
- تنسيقات إدخال متعددة – أدخل الأرقام بالصيغة العشرية، الثنائية (0b)، الست عشرية (0x)، أو الثمانية (0o)
- عرض بت قابل للتكوين – دعم الأعداد الصحيحة 8 بت، 16 بت، 32 بت، و 64 بت
- تصور ثنائي – عرض التمثيلات الثنائية قبل وبعد مع إبراز البتات المزاحة
- كشف الفائض – يعرض بتات الحمل والفائض التي تزاح خارج حدود عرض البت
- حساب في الوقت الفعلي – تتحدث النتائج فورًا أثناء الكتابة أو تعديل مقدار الإزاحة
- شرح قوة الرقم 2 – يعرض عملية الضرب أو القسمة المكافئة لكل إزاحة
فهم عمليات الإزاحة الثنائية
تزيح الإزاحات الثنائية جميع البتات في رقم ثنائي إلى اليسار أو اليمين بعدد محدد من المواضع. الإزاحة لليسار بمقدار n موضع تكافئ الضرب في 2^n، مما يجعلها واحدة من أسرع عمليات الضرب في الحوسبة. تقسم الإزاحة لليمين بقوى الرقم 2، ولكن السلوك يختلف بين الإزاحات الحسابية (التي تحافظ على بت الإشارة) والإزاحات المنطقية (التي تملأ بالأصفار).
هذه العمليات أساسية في البرمجة منخفضة المستوى، والأنظمة المضمنة، وبرمجة الرسومات، والتشفير. يساعد فهم كيفية تحرك البتات المطورين على كتابة تعليمات برمجية أسرع وتصحيح الأخطاء على مستوى ثنائي بشكل أكثر فعالية.
التعليمات
-
ما الفرق بين الإزاحة لليمين الحسابية والمنطقية؟
الإزاحة لليمين الحسابية (>>) تحافظ على بت الإشارة - إذا كان البت الأقصى يسارًا هو 1 (رقم سالب في المكمل الثنائي)، فإنها تملأ المواقع الجديدة بـ 1s. الإزاحة لليمين المنطقية (>>>) تملأ دائمًا بـ 0s بغض النظر عن بت الإشارة. هذا التمييز مهم عند العمل مع الأعداد الصحيحة الموقعة، حيث تحافظ الإزاحة الحسابية على إشارة الرقم بينما تعامل الإزاحة المنطقية القيمة على أنها غير موقعة.
-
لماذا الإزاحة الثنائية أسرع من الضرب؟
تعد الإزاحة الثنائية تعليمة معالج واحدة تحرك البتات فعليًا في المسجل، وتستغرق دورة ساعة واحدة فقط على معظم المعالجات. يتطلب الضرب عمليات جمع وإزاحة متعددة داخليًا، حتى مع مضاعفات الأجهزة. غالبًا ما تقوم المترجمات تلقائيًا بتحسين الضرب بقوى الرقم 2 إلى عمليات إزاحة، ولكن فهم الإزاحات يساعد عند كتابة تعليمات برمجية حرجة للأداء في الأنظمة المضمنة أو التطبيقات في الوقت الفعلي.
-
ماذا يحدث عند إزاحة البتات خارج عرض العدد الصحيح؟
تُفقد البتات التي تزاح خارج حدود عرض العدد الصحيح — فهي تفائض ولا يمكن استعادتها. بالنسبة للإزاحة لليسار على عدد صحيح 8 بت، فإن الإزاحة بمقدار 8 مواضع أو أكثر ينتج عنها صفر حيث تم إخراج جميع البتات الأصلية. تحدد معظم لغات البرمجة هذا السلوك في مواصفاتها، على الرغم من أن البعض (مثل C) يعتبر الإزاحة بأكثر من عرض النوع سلوكًا غير محدد.
-
كيف تُستخدم الإزاحات الثنائية في البرمجة الواقعية؟
تُستخدم الإزاحات الثنائية بشكل مكثف في برمجة الرسومات لاستخراج قنوات الألوان (إزاحة قيم RGB)، وبروتوكولات الشبكات لتجميع حقول الرأس وفك تجميعها، وخوارزميات التشفير مثل SHA و AES، والأنظمة المضمنة لمعالجة المسجلات، وتطوير الألعاب لحسابات الإحداثيات السريعة. وهي شائعة أيضًا في خوارزميات ضغط البيانات ودوال التجزئة.
تثبيت ملحقاتنا
أضف أدوات IO إلى متصفحك المفضل للوصول الفوري والبحث بشكل أسرع
恵 وصلت لوحة النتائج!
لوحة النتائج هي طريقة ممتعة لتتبع ألعابك، يتم تخزين جميع البيانات في متصفحك. المزيد من الميزات قريبا!
