جابه‌جایی منطقی

از ویکی‌پدیا، دانشنامهٔ آزاد

نسخه‌ای که می‌بینید نسخه‌ای قدیمی از صفحه است که توسط Amir.Vector (بحث | مشارکت‌ها) در تاریخ ‏۲۲ فوریهٔ ۲۰۲۱، ساعت ۲۰:۰۷ ویرایش شده است. این نسخه ممکن است تفاوت‌های عمده‌ای با نسخهٔ فعلی داشته باشد.

در علوم کامپیوتر، یک شیفت منطقی در واقع یک عملگر بیتی (bitwise) می‌باشد که قادر به حرکت دادن تمامی بیت‌های عملوند است.

بر خلاف شیفت محاسباتی، شیفت منطقی برای علامت عملوند ارزشی قائل نیست (نه برای نما و نه برای مانتیس عملوند).

هر بیتی از عملوند به سادگی به موقعیت خاسته شده جابجا می‌شوند و فضای خالی بیت‌ها به صورت عمومی با صفرها پر می‌شود.(با شیفت چرخشی مقایسه شود)

در زمان استفاده از شیفت منطقی، عملوند به صورت توالی از بیت‌ها در نظر گرفته می‌شود.

شیفت منطقی در صورتی که عملوندها اعدادی از مبنای ۲، در اجرای اعمال توان و تقسیم بسیار کارا و مؤثر خواهد بود..

شیفت n بیت به چپ یک عملوند با یا بی علامت، برابر با ضرب کردن آن در ۲n است.

شیفت n بیت به راست یک عملوند بی علامت، برابر با تقسیم آن در ۲n است.

به دلیل اینکه شیفت محاسباتی و منطقی با هم متفاوتند، اکثر زبان‌های برنامه نویسی عملگرهای مختلفی برای آنها در نظر گرفته‌اند.

به عنوان مثال در جاوا و جاوا اسکریپت، شیفت محاسباتی راست با <<نمایش داده می‌شوند، این در حالی است که شیفت منطقی راست با <<<نمایش داده می‌شود.

مثال

در صورتی که عملوند توالی از بیت‌های ۰۱۱۱ ۰۰۰۱ (۲۳ دسیمال) باشد، در صورتی که شیفت به اندازه یک بیت داده شود به صورت زیر این اعمال انجام خواهند شد.

به چپ که نتیجه ۱۱۱۰ ۰۰۱۰ (۴۶ دسیمال)

شیفت به چپ یک بیت

به راست که نتیجه ۱۰۱۱ ۰۰۰۰ (۱۱ دسیمال)

جستارهای وابسته

شیفت به راست یک بیت