توجد أساليب كثير لتدوير البتات داخل رقم 32bit او 64bit و لكن أغلب هذه الطرق تتطلب ضعف مساحة النوع المدخل و لا توجد مشكله إذا كان مساحة النوع 4 بايت او 8 بايت و لكن عندما تكون 1024 بايت فمن الصعب جدا جدا كتابة داله لتدوير مثل هذا الرقم بهذه الطرق و لابد من وجود طرق أخرى.
السؤال هو كيف يمكن كتابة دالة لتدوير رقم صخم - 32 بايت على سبيل المثال - فقط بإستخدام متغير unsigned او بحد اقصي unsigned long long.
و لكن مهلا لا تبدا فى محاولة الحل الأن، رقم بمثل هذه المساحه سيصعب عليك جدا جدا تتبعه لذا إليك هذا المثال و حاول كتابة خوارزميه عليه و إن نجحت فلك 25 نقطه، الرقم هو 0xABCDEF37 و مسموح لك بإستخدام 4 بت فقط أثناء التدوير و التدوير سيكون بعدد 8 و 9 و 16 و 17 و 24 و 25 و النتائج المفترض التى تنتجها الخوارزميه كالتالي:
rol(0xABCDEF37, 8) = 0xcdef37ab rol(0xABCDEF37, 9) = 0x9bde6f57 rol(0xABCDEF37, 16) = 0xef37abcd rol(0xABCDEF37, 17) = 0xde6f579b rol(0xABCDEF37, 24) = 0x37abcdef rol(0xABCDEF37, 25) = 0x6f579bde
من الجميل إن استطعت كتابة كود كتطبيق للخورازميه خاصتك بأى لغه أردت طالما ستقوم بوضع الخوارزميه المتبعه، و فضلا لا امرا إن لم تكن تعرف ما المقصود بالتدوير فانا شاكر لك حسن زيارتك.
و الله ولي التوفيق











