میخوای وارد بازار کار بشی و محصولات خودت رو بفرشی همین الان ثبت نام کن
0

عملگر های بیتی جاوا اسکریپت

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

 

عملگرنامتوضیحات
&ANDاگر هر دو بیت ۱ باشد ، نتیجه ۱ است
|ORاگر یکی از دو بیت ۱ باشد ، نتیجه ۱ است
^XORنتیجه عبارت ۱ است اگر تنها یکی از دو بیت ۱ باشد
~NOTهمه بیت ها را معکوس می کند.
<<شیفت به چپ (صفر پرکن)با وارد کردن صفر از راست، همه بیت ها را به سمت چپ حرکت می دهد و به تعداد صفر وارد شده از راست ، بیت های سمت چپ از بین می روند.
>>شیفت به راست علامت داربا وارد کردن یک کپی از چپ ترین بیت، همه بیت ها را به سمت راست حرکت می دهد و به تعداد بیت های وارد شده از راست، بیت های سمت چپ از بین می روند.
>>>شیفت به راست (صفر پرکن)با وارد کردن صفر از چپ، همه بیت ها را به سمت راست حرکت می دهد و به تعداد صفر وارد شده از چپ، بیت های سمت راست از بین می روند.

مثال ها

عملگرنتیجهشبیه بهنتیجه
۵ & 1۱۰۱۰۱ & 0001 ۰۰۰۱
۵ | ۱۵۰۱۰۱ | ۰۰۰۱ ۰۱۰۱
~ ۵۱۰ ~۰۱۰۱ ۱۰۱۰
۵ << 1۱۰۰۱۰۱ << 1 ۱۰۱۰
۵ ^ ۱۴۰۱۰۱ ^ ۰۰۰۱ ۰۱۰۰
۵ >> 1۲۰۱۰۱ >> 1 ۰۰۱۰
۵ >>> 1۲۰۱۰۱ >>> 1 ۰۰۱۰

جاوا اسکریپت از عملوند های ۳۲ بیتی استفاده می کند

جاوا اسکریپت اعداد را به صورت ۶۴ بیتی ذخیره می کند ، اما تمام عملیات بیتی بر روی اعداد باینری ۳۲ بیتی انجام می شود.

قبل از اینکه یک عملیات بیتی انجام شود ، جاوا اسکریپت اعداد را به اعداد صحیح ۳۲ بیتی علامت دار تبدیل می کند.

پس از انجام عملیات بیتی ، نتیجه به عدد ۶۴ بیتی جاوا اسکریپت تبدیل می شود.

در مثالهای فوق از اعداد باینری ۴ بیتی بدون علامت استفاده شده است. به همین دلیل نقیض ۵ نتیجه ۱۰ را برمی گرداند.

از آنجا که جاوا اسکریپت از اعداد صحیح علامت دار ۳۲ بیتی استفاده می کند ، ۱۰ برنمی گردد. بلکه ۶- برمی گرداند

۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۱۰۱ (۵) ۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۰۱۰ (~۵ = -۶)یک عدد صحیح علامت دار از چپترین بیت به عنوان علامت منفی استفاده می کند.

عملگر بیتی AND

وقتی عملیات بیتی AND روی یک جفت بیت انجام می شود، اگر هر دو بیت ۱ باشند، نتیجه ۱ باز می گردد؛ در غیر این صورت نتیجه ۰ است.

مثال یک بیتیمثال ۴ بیتی
عملنتیجهعملنتیجه
۰ & 0۰۱۱۱۱ & 0000۰۰۰۰
۰ & 1۰۱۱۱۱ & 0001۰۰۰۱
۱ & 0۰۱۱۱۱ & 0010۰۰۱۰
۱ & 1۱۱۱۱۱ & 0100۰۱۰۰

عملگر بیتی OR

وقتی عملیات بیتی OR روی یک جفت بیت انجام می شود، اگر یکی از بیت ها ۱ باشد، نتیجه ۱ باز می گردد.

مثال یک بیتیمثال ۴ بیتی
عملنتیجهعملنتیجه
۰ | ۰۰۱۱۱۱ | ۰۰۰۰۱۱۱۱
۰ | ۱۱۱۱۱۱ | ۰۰۰۱۱۱۱۱
۱ | ۰۱۱۱۱۱ | ۰۰۱۰۱۱۱۱
۱ | ۱۱۱۱۱۱ | ۰۱۰۰۱۱۱۱

عملگر بیتی XOR

هنگامی که عملگر بیتی XOR روی یک جفت بیت اعمال می شود ، اگر بیت ها متفاوت باشند ۱ باز می گردد در غیر این صورت ۰ برمی گرداند:

مثال یک بیتی:مثال ۴ بیتی:
عملنتیجهعملنتیجه
۰ ^ ۰۰۱۱۱۱ ^ ۰۰۰۰۱۱۱۱
۰ ^ ۱۱۱۱۱۱ ^ ۰۰۰۱۱۱۱۰
۱ ^ ۰۱۱۱۱۱ ^ ۰۰۱۰۱۱۰۱
۱ ^ ۱۰۱۱۱۱ ^ ۰۱۰۰۱۰۱۱

عملگر بیتی AND در جاوا اسکریپت (&)

عملگر AND اگر هردوبیت ۱ باشد ، نتیجه ۱ برمیگرداند:

مبنای ۱۰دودویی
۵۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۱۰۱
۱۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۱
۵ & 1۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۱ (۱)

عملگر بیتی OR در جاوا اسکریپت (|)

اگر یکی از بیت ها ۱ باشد، نتیجه ۱ می شود:

مبنای ۱۰دودویی
۵۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۱۰۱
۱۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۱
۵ | ۱۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۱۰۱ (۵)

عملگر بیتی XOR در جاوا اسکریپت (^)

اگر دو بیت متفاوت باشند نتیجه XOR روی آنها، ۱ می شود:

مبنای ۱۰دودویی
۵۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۱۰۱
۱۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۱
۵ ^ ۱۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۱۰۰ (۴)

عملگر بیتی NOT در جاوا اسکریپت (~)

مبنای ۱۰دودویی
۵۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۱۰۱
۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۰۱۰ (-۶)

عملگر بیتی شیفت به چپ جاوا اسکریپت (>>)

این عملگر بیت ها را به سمت چپ حرکت می دهد. به تعداد حرکت داده شده به چپ از سمت راست بیت ۰/صفر پر می شود و به همان تعداد از سمت چپ بیت ها از بین می روند.

اعشاردودویی
۵۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۱۰۱
۵ << 1۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۱۰۱۰ (۱۰)

عملگر بیتی شیفت به راست در جاوا اسکریپت (<<)

این عملگر شیفت مناسب برای حفظ اعداد علامت دار (+/-) می باشد. یک کپی از چپ ترین بیت به تعداد شیفت از سمت چپ وارد می شود و راست ترین بیت ها به تعداد شیفت از بین می روند.

اعشاردودویی
۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۰۱۱
-۵ >> 1۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۰۱ (-۳)

عملگر بیتی شیفت به راست (صفر پرکن) در جاوا اسکریپت (<<<)

این عملگر بیت ها را به سمت راست حرکت می دهد. به تعداد حرکت داده شده به راست از سمت چپ بیت ۰/صفر پر می شود و به همان تعداد از سمت راست بیت ها از بین می روند.

اعشاردودویی
۵۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۱۰۱
۵ >>> 1۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۱۰ (۲)

اعداد دودویی

Binary Numbers

اعداد دودویی با تنها یک مجموعه بیت قابل درک است:

نمایش دودوییعدد در مبنای ۱۰
۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۱۱
۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۱۰۲
۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۱۰۰۴
۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۱۰۰۰۸
۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۱۰۰۰۰۱۶
۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۱۰۰۰۰۰۳۲
۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۱۰۰۰۰۰۰۶۴

تنظیم چند بیت دیگر الگوی اعداد دودویی را آشکار می کند:

نمایش دودوییعدد در مبنای ۱۰
۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۱۰۱۵ (۴ + ۱)
۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۱۱۰۱۱۳ (۸ + ۴ + ۱)
۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۱۰۱۱۰۱۴۵ (۳۲ + ۸ + ۴ + ۱)

اعداد دودویی جاوا اسکریپت در قالب مکمل ۲ ذخیره می شوند.

این بدان معناست که منفی یک عدد دو دویی، برابر است با نقیض بیتی (NOT) آن عدد بعلاوه ۱ :

نمایش دودوییمقدار ده دهی
۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۱۰۱۵
۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۰۱۱
۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۱۱۰۶
۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۰۱۰
۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۱۰۱۰۰۰۴۰
۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۰۱۱۰۰۰-۴۰

تبدیل ده دهی به دودویی

function dec2bin(dec){
return (dec >>> ۰).toString(2);
}

function bin2dec(bin){
return parseInt(bin, ۲).toString(10);
}

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

نظراتتون رو زیر همین پست با ما به اشتراک بگذارید.

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

×

سلام کاربر عزیز

هر سوالی دارید در این بخش هستیم تا شما رو راهنمائی کنیم

روی لوگومون کلیک کنید

× چطور میتونم کمکتون کنم؟