Bitwise Operations

1️⃣ تعریف عملیات بیتی

  • عملیات بیتی روی باینری (0 و 1) اعداد انجام می‌شود.

  • جاوااسکریپت قبل از اعمال بیت‌به‌بیت، عدد را به 32 بیت (integer) تبدیل می‌کند.

مثال:

500000000000000000000000000000101 100000000000000000000000000000001

2️⃣ عملگرهای بیتی اصلی

عملگرمثالتوضیح
AND &5 & 11فقط اگر هر دو بیت 1 باشند نتیجه 1 می‌شود
OR ```5
XOR ^5 ^ 14اگر بیت‌ها متفاوت باشند نتیجه 1 می‌شود
NOT ~~5-6برعکس کردن بیت‌ها (تبدیل به مکمل 2)


3️⃣ عملگرهای شیفت

عملگرمثالتوضیح
چپ <<5 << 110شیفت به چپ (ضرب در 2)
راست >>5 >> 12شیفت به راست با حفظ علامت
راست بدون علامت >>>-5 >>> 1 → عدد بزرگشیفت به راست بدون توجه به علامت


4️⃣ مثال‌های عملی

console.log(5 & 1); // 1 console.log(5 | 1); // 5 console.log(5 ^ 1); // 4 console.log(~5); // -6 console.log(5 << 1); // 10 console.log(5 >> 1); // 2 console.log(-5 >> 1); // -3 console.log(-5 >>> 1); // 2147483645

5️⃣ کاربردهای واقعی عملیات بیتی
✅ فشرده‌سازی داده‌ها
✅ کار با پرچم‌ها (flags)
✅ رمزنگاری ساده
✅ بهینه‌سازی سرعت در محاسبات ریاضی

مثال: استفاده به‌عنوان پرچم‌ها:

const READ = 1; // 001 const WRITE = 2; // 010 const EXEC = 4; // 100 let permission = READ | WRITE; console.log(permission & READ); // 1 → دسترسی خواندن دارد console.log(permission & EXEC); // 0 → دسترسی اجرا ندارد