JavaScript Bitwise Operations
عملیات بیتی در JavaScript
عملگرهای بیتی روی اعداد صحیح ۳۲ بیتی با علامت کار میکنند.
جاوااسکریپت قبل از انجام عملیات، عدد را به نمایش باینری ۳۲ بیتی تبدیل میکند، عملیات را انجام میدهد و دوباره به عدد دهدهی برمیگرداند.
جدول عملگرهای بیتی
| عملگر | نام | توضیح |
|---|---|---|
& |
AND (و) | هر دو بیت ۱ باشند → ۱ |
| ` | ` | OR (یا) |
^ |
XOR (یا انحصاری) | بیتها متفاوت باشند → ۱ |
~ |
NOT (نقیض) | معکوس کردن بیتها |
<< |
شیفت به چپ | جابهجایی بیتها به چپ |
>> |
شیفت به راست | شیفت به راست با حفظ علامت |
>>> |
شیفت به راست بدون علامت | پر شدن با صفر |
عملگر AND (&)
5 & 1
// 0101
// 0001
// —-
// 0001 → 1
عملگر OR (|)
5 | 1
// 0101
// 0001
// —-
// 0101 → 5
عملگر NOT (~)
~5
// 5 → 00000000000000000000000000000101
// ~5 → 11111111111111111111111111111010
// نتیجه: -6
شیفت به چپ (<<)
5 << 1
// 0101 → 1010
// نتیجه: 10
شیفت به راست (>>)
–5 >> 1
// بیت علامت حفظ میشود
شیفت به راست بدون علامت (>>>)
–5 >>> 1
// نتیجه عدد مثبت بزرگ خواهد بود
کاربردهای رایج
تبدیل سریع به عدد صحیح
تشخیص زوج یا فرد بودن
(x & 1) === 0 // زوج
ضرب و تقسیم سریع
x << 1 // ضرب در 2
x >> 1 // تقسیم بر 2
پرچمهای بیتی (Bit Flags)
const READ = 1; // 0001
const WRITE = 2; // 0010
const EXEC = 4; // 0100
let perm = READ | WRITE;
(perm & READ) !== 0; // true
نکات مهم ⚠️
-
فقط روی ۳۲ بیت کار میکند
-
برای اعداد بزرگ و اعشاری مناسب نیست
-
>>>همیشه خروجی مثبت دارد -
برای محاسبات مالی و کریپتو توصیه نمیشود
دیدگاهتان را بنویسید