پرش به محتوا

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

از ویکی‌پدیا، دانشنامهٔ آزاد
(تغییرمسیر از شیفت منطقی)

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

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

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

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

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

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

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

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

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

مثال

[ویرایش]

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

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

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

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

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

[ویرایش]
جابه‌جایی به راست یک بیت