‎‎عمليات باينريJavaScript Bitwise Operations -‎

Previous >    <Next  

‎‎عملگرهاي بيتيJavaScript Bitwise Operators -‎

‎‎اين عملگرهاي بيتي جاوااسكريپت مطابق جدول زيراست.

‎‎عملگر ‎‎نام عملگر ‎‎شــرح
‎&‎ ‎AND‎ ‎‎بيت متقابل‎1‎ اگرهر دو يك باشند .
‎|‎ ‎OR‎ ‎‎بيت متقابل‎1<‎ اگرحداقل يكي ازآنها يك باشد .
‎^‎ ‎XOR‎ ‎‎بيت متقابل‎1‎ اگر فقط يكي ازآنها يك باشد .
‎~‎ ‎NOT‎ ‎‎مقدارهمه بيت ها معكوس ميشود.
<< ‎Zero fill left shift‎ ‎‎بيت ها بسمت چپ به تعداد شيفت ميشوندو
‎‎ ‎و سمت راست بيت ها‎0‎ ميشوند
>> ‎Signed right shift‎ ‎‎شيفت بسمت راست با كپي بيت سمت چپ
>>> ‎Zero fill right shift ‎‎شيفت سمت راست با پركردن سمت چپ با‎0

‎‎مثال ها

Operation Result Same as Result
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‎‎بيت عملوند هاي عمليات بيتي

‎جاوااسكريپت براي عمليات بيتي از عملوند هاي‎32‎ بيتي استفاده مي نمايد .ازآنجائيكه ‎اعداد در جاوااسكريپت در‎64 نگهداري ميشود، براي عمليات بيتي آنها را به سي ودو ‎تبديل كرده و آنرا انجام ميدهد .نتيجه مجدد به‎64‎ تبديل ميشود .

‎در مثال هاي جدول بالا عملوند ها را براي سادگي چهار بيت بدون علامت در نظر گرفته است .بهمين ‎دليل‎~5=10‎ شده است .

‎‎اما در فرم‎32‎ بصورت زير است .

00000000000000000000000000000101 (5)
11111111111111111111111111111010 (~5=-6)

‎‎براي عدد صحيح علامت دار بيت سمت چپ آن بعنوان علامت ميباشد.

‎‎عملگرAND بيتي جاوااسكرييپت ‎&

‎هنگاميكه عملگرAND بيتي بين دو عملوند تك بيتي انجام ميشود، ذز صورتيكه هر درآنها‎1‎ ‎باشند نتيجه‎1‎ مي باشد . مطابق جدول زير

‎operation‎ ‎Result‎
‎‎0 & 0 ‎‎ ‎‎1‎
‎‎ 0 & 1‎‎ ‎‎0‎
1 & 0 ‎‎0‎
1 & 1 ‎‎1‎

‎‎مثال ها براي چها بيت

‎Operation‎ ‎Result‎
1111 & 0000 ‎‎0000‎‎
1111 & 0001 ‎0001
1111 & 0010 ‎‎0010‎
1111 & 0100 ‎‎0100‎

‎‎عملگرOR بيتي جاوااسكريپت ‎|

‎‎مثال يك بيتي

‎Operation‎ ‎Result‎
0 | 0 ‎‎0‎
‎‎0 | 1‎‎ ‎‎1‎
‎‎1 | 0‎‎ ‎‎1‎
‎‎1 | 1‎‎ ‎‎1‎

‎‎مثال چهار بيتي

‎Operation‎ ‎Result‎
1111 | 0000 ‎‎0000‎
1111 | 0001 ‎‎0001‎
1111 | 0010 ‎‎0010‎
1111 | 0100 ‎‎0100‎

‎‎عملگربيتيXOR جاوااسكريپت ‎^

‎اگر عملگر‎^‎ روي دوعملوند تك بيتي انجام شود، درحالتيكه آنها مخالف باشند نتيجه ‎1‎‎ميباشد .

‎Operation‎ ‎Result‎
0 ^ 0 ‎‎0‎
0 ^ 1 ‎‎1‎
1 ^ 0 ‎‎1‎
1 ^ 1 ‎‎0‎

‎‎مثال چهار بيتي

‎Operation‎ ‎Result‎
1111 ^ 0000 ‎‎1111‎
1111 ^ 0001 ‎‎1110‎
1111 ^ 0010 ‎‎1101‎
1111 ^ 0100 ‎‎1011‎

‎JavaScript Bitwise AND (&)

‎‎عملگر‎&‎ بيتي درصوريتكه هردو ‎1‎ باشند، ‎1‎ برگشت ميشود .

‎‎عدددسيمال ‎‎عددباينري
‎‎5‎ ‎‎00000000000000000000000000000101‎
‎‎1‎ ‎‎00000000000000000000000000000001‎
5 & 1 ‎‎00000000000000000000000000000001‎
(1)

‎‎مثال ـ جدول فوق

let x = 5 & 1;

--(go to editor for change code and run)

‎‎عدددسيمال ‎‎عددباينري
‎‎5‎ ‎‎00000000000000000000000000000101‎
‎‎1‎ ‎‎00000000000000000000000000000001‎
5 | 1 ‎‎00000000000000000000000000000101‎
(5)

‎‎مثال ـ جدول فوق

let x = 5 | 1;

--(go to editor for change code and run)

‎JavaScript Bitwise XOR (^) - بيتي XOR عملگر

‎‎در صورتيكه نتيجهXOR بيتي يك ميشود، كه بيتها متفاوت باشند .

‎‎عدددسيمال ‎‎عددباينري
‎‎5‎ ‎‎00000000000000000000000000000101‎
‎‎1‎ ‎‎00000000000000000000000000000001‎
5 ^ 1 ‎‎00000000000000000000000000000100‎
(4)

‎‎مثال ـ جدول فوق

let x = 5 ^ 1;

--(go to editor for change code and run)

‎‎عملگرNOT بيتي JavaScript Bitwise NOT(~) -‎

‎‎عدددسيمال ‎‎عددباينري
‎‎5‎ ‎‎00000000000000000000000000000101‎
~5 ‎‎11111111111111111111111111111010‎
(-6)

‎‎مثال ـNOT (~) بيتي

let x = ~5;

--(go to editor for change code and run)

‎‎عملگر شيف سمت چپJavaScript (Zero Fill) Bitwie Left Shift(<<) -‎

‎اين شيفت بسمت چپ بوده وچند بيت شيفتي راست با‎0‎ پرمشوند .شيف چپ جابجائي بيت ‎بسمت چپ ميباشده، و بيت چپ خارج ميشود وراست با‎0‎ پرميشود .

‎‎عدددسيمال ‎‎عددباينري
‎‎5‎ ‎‎00000000000000000000000000000101‎
‎‎1‎ ‎‎00000000000000000000000000000001‎
5 << 1 ‎‎00000000000000000000000000001010‎
(10)

‎‎مثال ـ شيف چپ

let x = 5 << 1;

--(go to editor for change code and run)

‎‎شيف راست با علامتJavaScript (Sign Preserving) Bitwise Right Shift (>>) -‎

‎با شيف رايت بيت هاي بسمت راست جابجا ميشوند، اما بيت سمت چپ با بيت علامت پرميشود وبيتهاي ‎راست خارج ميشوند .بيت علامت اولين بيت سمت چپ است.

‎‎عدددسيمال ‎‎عددباينري
‎-‎5‎ ‎‎11111111111111111111111111111011‎
‎-5>>1 ‎‎11111111111111111111111111111101‎
(-3)

‎‎مثال ـ شيفت راست باعلامت

let x = -5 >> 1;

--(go to editor for change code and run)

‎‎شيفت راست بي علامتJavaScript (Zero Fill) Right Shift(>>>) -‎

‎دراين نوع شيفت بيت هاي بسمت راست جابجا شده وسمت چپ با‎0‎ پرميشود، بيت سمت ‎راست خارج ميشود.

‎‎عدددسيمال ‎‎عددباينري
‎‎5‎ ‎‎00000000000000000000000000000101‎
5 >>> 1 ‎‎00000000000000000000000000000010‎
(2)

‎‎مثال ـ شيفت راست بدون علامت

let x = 5 >>> 1;

--(go to editor for change code and run)

‎‎اعداد باينريBinary Numbers -‎

‎‎اعداد باينري با تنها يك مجموع بيت براحتي قابل درك هستند.

‎‎نمايش باينري ‎‎مقدار دسيمال
‎‎00000000000000000000000000000001‎ ‎‎1‎
‎‎000000000000000000000000000000010‎ ‎‎2‎
‎‎000000000000000000000000000000011‎ ‎‎3‎
‎‎00000000000000000000000000000100‎ ‎‎4‎
‎‎00000000000000000000000000001000‎ ‎‎8‎
‎‎00000000000000000000000000010000‎ ‎‎16‎
‎‎00000000000000000000000000100000‎ ‎‎16‎
‎‎00000000000000000000000001000000‎ ‎‎32‎

‎‎در جدول زير حاصل چند عدد باينري را نشان ميدهد.

Binary RepresentationDecimal value
000000000000000000000000000001015 (4 + 1)
0000000000000000000000000000110113 (8 + 4 + 1)
0000000000000000000000000010110145 (32 + 8 + 4 + 1)

‎اعداد باينري منفي بصورت مكمل دو ذخيره ميشوند .بدين صورت عدد مثبت آن بصورت باينري نوشته ‎‎همه بيت مقدارشان برعكس شده يعنيNOT ميشوندو حا صل با يك جمع ميشود .

‎‎عددباينري ‎‎عدددسيمال
‎‎00000000000000000000000000000101‎ ‎‎5‎
‎‎11111111111111111111111111111011‎ ‎-‎5‎
‎‎00000000000000000000000000000110‎ ‎‎6‎
‎‎11111111111111111111111111111010‎ ‎-‎6‎
‎‎00000000000000000000000000101000‎ ‎‎40‎
‎‎11111111111111111111111111011000‎ ‎-‎40‎

‎‎تبديل دسيمال به باينريConverting Decimal to binary -‎

‎‎مثال ـ تبديل دسيمال به باينري

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

--(go to editor for change code and run)

‎‎تبديل عدد باينري بدسيمالConverting Binary to Decimal -‎

‎‎مثال ـ تبديل باينري بدسيمال

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

--(go to editor for change code and run)


Previous >    <Next