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

| عملگر | نام | توضیح |
|---|---|---|
| & | AND |
اگر هردوی بیت ها 1 باشند، هر بیت را برابر با 1 تنظیم می کند. |
| | | OR |
اگر یکی از دو بیت برابر با 1 باشند، هر بیت را برابر با 1 تنظیم می کند. |
| ^ | XOR |
اگر تنها یکی از دو بیت برابر با 1 باشند، هر بیت را برابر با 1 تنظیم می کند. |
| ~ | NOT |
تمام بیت ها را معکوس می کند |
| << |
بیت ها را به سمت چپ حرکت(شیفت) می دهد. |
شیفت به چپ با قرار دادن صفرها از سمت راست و اجازه دادن برای افتادن چپ ترین بیت ها. |
| >> |
شیفت به راستِ علامت دار؛ یعنی علامت عدد حاصل شده مشابه با علامت اولین عملوند است. |
بیت ها را به سمت راست شیفت می دهد. |
| >>> |
شیفت به راستِ بدون علامت؛ یعنی بیتِ علامت، 0 است، بنابراین عدد حاصل شده همواره مثبت است. |
شیفت به راست با قرار دادن صفرها از سمت چپ. |
مثال ها
| عملیات | نتیجه | مشابه است با | نتیجه |
|---|---|---|---|
| 5 & 1 | 1 | 0101 & 0001 | 0001 |
| 5 | 1 | 5 | 0101 | 0001 | 0101 |
| ~ 5 | 10 | ~0101 | 1010 |
| 5 << 1 | 10 | 0101 << 1 | 1010 |
| 5 ^ 1 | 4 | 0101 ^ 0001 | 0100 |
| 5 >> 1 | 2 | 0101 >> 1 | 0010 |
| 5 >>> 1 | 2 | 0101 >>> 1 | 0010 |
جاوا اسکریپت از عملوندهای بیتیِ 32 بیت استفاده می کند
جاوا اسکریپت اعداد را به صورت عددهای 64 بیتِ ممیز شناور ذخیره می کند اما تمام عملیات های بیتی روی اعداد باینری 32 بیت انجام می شوند.
قبل از اینکه یک عملیات بیتی انجام شود، جاوا اسکریپت اعداد را به اعدادِ صحیح 32 بیتِ علامت دار تبدیل می کند.
پس از اینکه عملیات بیتی انجام شود، نتیجهی حاصل شده، به اعداد 64 بیتِ جاوا اسکریپت تبدیل می شود.
مثال های بالا، از اعداد باینری 4 بیتی استفاده کرده اند. به همین دلیل 5~ مقدار 10 را برمی گرداند.
چونکه جاوا اسکریپت از اعداد صحیحِ علامت دارِ 32 بیت استفاده می کند، 5~ مقدار -6 را برمی گرداند.
00000000000000000000000000000101 (5)
11111111111111111111111111111010 (~5 = -6)
یک عدد صحیحِ علامت دار، از چپ ترین بیت بعنوان علامت منفی استفاده می کند.
AND بیتی در جاوا اسکریپت
هنگامی که AND بیتی روی یک جفت بیت انجام شود، اگر هردوی بیت ها 1 باشند، مقدار 1 را برمی گرداند.
مثال 1 بیتی:
| عملیات | نتیجه |
|---|---|
| 0 & 0 | 0 |
| 0 & 1 | 0 |
| 1 & 0 | 0 |
| 1 & 1 | 1 |
مثال 4 بیتی:
| عملیات | نتیجه |
|---|---|
| 1111 & 0000 | 0000 |
| 1111 & 0001 | 0001 |
| 1111 & 0010 | 0010 |
| 1111 & 0100 | 0100 |
OR بیتی در جاوا اسکریپت
هنگامی که OR بیتی روی یک جفت از بیت ها انجام شود، اگر یکی از بیت ها 1 باشد، مقدار 1 برگردانده می شود:
مثال 1 بیتی:
| عملیات | نتیجه |
|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
مثال 4 بیتی:
| عملیات | نتیجه |
|---|---|
| 1111 | 0000 | 1111 |
| 1111 | 0001 | 1111 |
| 1111 | 0010 | 1111 |
| 1111 | 0100 | 1111 |
XOR بیتی در جاوا اسکریپت
هنگامی که یک XOR بیتی، روی یک جفت از بیت ها انجام می شود، اگر بیت ها متفاوت باشند، مقدار 1 را برمی گرداند:
مثال 1 بیتی:
| عملیات | نتیجه |
|---|---|
| 0 ^ 0 | 0 |
| 0 ^ 1 | 1 |
| 1 ^ 0 | 1 |
| 1 ^ 1 | 0 |
مثال 4 بیتی:
| عملیات | نتیجه |
|---|---|
| 1111 ^ 0000 | 1111 |
| 1111 ^ 0001 | 1110 |
| 1111 ^ 0010 | 1101 |
| 1111 ^ 0100 | 1011 |
AND بیتی(&) در جاوا اسکریپت
AND بیتی، تنها اگر هردوی بیت ها برابر با 1 باشند، مقدار 1 را برمی گرداند:
| دسیمال(اعشاری) | باینری |
|---|---|
| 5 | 00000000000000000000000000000101 |
| 1 | 00000000000000000000000000000001 |
| 5 & 1 | 00000000000000000000000000000001 (1) |
JavaScript Bitwise OR (|)
Bitwise OR returns 1 if one of the bits is 1:
منبع: www.w3schools.com/js
- بازدید: 17
1. سعی کنید نظرات شما مرتبط با مقاله ی مورد نظر باشد، در غیر این صورت پاسخ داده نخواهد شد.
2. سوالات خود را به صورت کوتاه بیان کنید و از پرسیدن چند سوال به طور همزمان خودداری کنید.
3. سوال خود را به طور واضح بیان کنید و از کلمات مبهم استفاده نکنید.