عناصر الحساب في جافا سكربت
- الصفحة السابقة JS Desctructuring
- الصفحة التالية تعريفات JS
عناصر الحساب في جافا سكربت
عامل الحساب | الاسم | وصف |
---|---|---|
& | AND | إذا كانت النقاطين كلاهما 1، فسيتم تعيين كل نقطة إلى 1 |
| | OR | إذا كان هناك نقطة واحدة فقط من النقاطين 1، فسيتم تعيين كل نقطة إلى 1 |
^ | XOR | إذا كان هناك نقطة واحدة فقط من النقاطين 1، فسيتم تعيين كل نقطة إلى 1 |
~ | NOT | عكس جميع النقاط |
<< | إعادة تعيين اليسار بالصفر | من خلال دفع الصفر من اليمين إلى اليسار وتسقط أحدث النقاط |
>> | إعادة تعيين اليمين الموقع | من خلال دفع نسخة من أحدث النقاط من اليسار إلى اليمين وتسقط أحدث النقاط |
>> | إعادة تعيين اليمين بالصفر | من خلال دفع الصفر من اليسار إلى اليمين وتسقط أحدث النقاط |
مثال
العمل | النتيجة | المعادلة | النتيجة |
---|---|---|---|
5 & 1 | 1 | 0101 & 0001 | 0001 |
5 | 1 | 5 | 0101 | 0001 | 0101 |
5 ^ 1 | 4 | 0101 ^ 0001 | 0100 |
~ 5 | 10 | ~0101 | 1010 |
5 << 1 | 10 | 0101 << 1 | 1010 |
5 >> 1 | 2 | 0101 >> 1 | 0010 |
5 >>> 1 | 2 | 0101 >>> 1 | 0010 |
استخدام عدد bitwise ذو 32 بت في JavaScript
يخزن JavaScript الأرقام كعدد عشري ذو 64 بت، لكن جميع العمليات bitwise تتم باستخدام عدد ثنائي ذو 32 بت.
تحويل الأرقام إلى عدد متباين ذو 32 بت قبل إجراء عملية الحساب bitwise.
بعد إجراء عملية الحساب bitwise، سيتم تحويل النتيجة إلى عدد JavaScript ذو 64 بت.
استخدام مثال على عدد ثنائي غير متباين من أربعة أرقام. لذا، ~5 يعود 10.
بما أن JavaScript يستخدم العدد المتباين ذو 32 بت، فإن JavaScript سيعود -6.
00000000000000000000000000000101 (5)
11111111111111111111111111111010 (~5 = -6)
استخدام أكبر موضع في العدد المتباين كعلامة السالب.
عملية bitwise AND
عند إجراء عملية bitwise AND على زوج من الأرقام، إذا كانت الأرقام في الموضعين كلاهما 1، فإن النتيجة تعود 1.
مثال على وحدة:
الحساب | النتيجة |
---|---|
0 & 0 | 0 |
0 & 1 | 0 |
1 & 0 | 0 |
1 & 1 | 1 |
مثال على أربعة أرقام:
الحساب | النتيجة |
---|---|
1111 & 0000 | 0000 |
1111 & 0001 | 0001 |
1111 & 0010 | 0010 |
1111 & 0100 | 0100 |
عملية bitwise OR
عند إجراء عملية bitwise OR على زوج من الأرقام، إذا كان أحد الأرقام 1، فإن النتيجة تعود 1:
مثال على وحدة
الحساب | النتيجة |
---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
الحسابات على أربعة أرقام:
العمل | النتيجة |
---|---|
1111 | 0000 | 1111 |
1111 | 0001 | 1111 |
1111 | 0010 | 1111 |
1111 | 0100 | 1111 |
عملية bitwise XOR
عند إجراء عملية bitwise XOR على زوج من الأرقام، إذا كانت الأرقام في الموضعين مختلفة، فإن النتيجة تعود 1:
مثال على وحدة:
الحساب | النتيجة |
---|---|
0 ^ 0 | 0 |
0 ^ 1 | 1 |
1 ^ 0 | 1 |
1 ^ 1 | 0 |
مثال على أربعة أرقام:
الحساب | النتيجة |
---|---|
1111 ^ 0000 | 1111 |
1111 ^ 0001 | 1110 |
1111 ^ 0010 | 1101 |
1111 ^ 0100 | 1011 |
تحويل البايت AND (&)
إذا كانت الأرقام في الموضعين كلاهما 1، فإن عملية الحساب bitwise AND تعود 1:
Decimal | Binary |
---|---|
5 | 00000000000000000000000000000101 |
1 | 00000000000000000000000000000001 |
5 & 1 | 00000000000000000000000000000001 (1) |
مثال
var x = 5 & 1;
تحويل البايت OR (|)
If one of the bits is 1, the bitwise OR operation returns 1:
Decimal | Binary |
---|---|
5 | 00000000000000000000000000000101 |
1 | 00000000000000000000000000000001 |
5 | 1 | 00000000000000000000000000000101 (5) |
مثال
var x = 5 | 1;
JavaScript bitwise XOR (^)
If the bits are different, XOR returns 1:
Decimal | Binary |
---|---|
5 | 00000000000000000000000000000101 |
1 | 00000000000000000000000000000001 |
5 ^ 1 | 00000000000000000000000000000100 (4) |
مثال
var x = 5 ^ 1;
JavaScript bitwise NOT (~)
Decimal | Binary |
---|---|
5 | 00000000000000000000000000000101 |
~5 | 11111111111111111111111111111010 (-6) |
مثال
var x = ~5;
JavaScript (zero-padded) bitwise left shift (<<)
This is zero-padded left shift. One or more zero bits are pushed in from the right, and the leftmost bit is removed:
Decimal | Binary |
---|---|
5 | 00000000000000000000000000000101 |
5 << 1 | 00000000000000000000000000001010 (10) |
مثال
var x = 5 << 1;
JavaScript (signed) bitwise right shift (>>)
This is sign-preserved right shift. The leftmost bit is pushed in from the left, and the rightmost bit is shifted out:
Decimal | Binary |
---|---|
-5 | 11111111111111111111111111111011 |
-5 >> 1 | 11111111111111111111111111111101 (-3) |
مثال
var x = -5 >> 1;
JavaScript (zero-padded) right shift (>>>)
This is zero-padded right shift. One or more zero bits are pushed in from the left, and the rightmost bit is shifted out:
Decimal | Binary |
---|---|
5 | 00000000000000000000000000000101 |
5 >>> 1 | 00000000000000000000000000000010 (2) |
مثال
var x = 5 >>> 1;
32-bit signed integer (binary number)
It is easy to understand the 32-bit integer with only one set bit:
ممثلة ثنائية | قيمة عشرية |
---|---|
00000000000000000000000000000001 | 1 |
00000000000000000000000000000010 | 2 |
00000000000000000000000000000100 | 4 |
00000000000000000000000000001000 | 8 |
00000000000000000000000000010000 | 16 |
00000000000000000000000000100000 | 32 |
00000000000000000000000001000000 | 64 |
زيادة عدد الأرقام المعددة تكشف عن نمط الثنائي:
ممثلة ثنائية | قيمة عشرية |
---|---|
00000000000000000000000000000101 | 5 (4 + 1) |
00000000000000000000000000101000 | 40 (32 + 8) |
00000000000000000000000000101101 | 45 (32 + 8 + 4 + 1) |
العدد السالب هو إضافة إكمال الثنائي الإضافي لعدد صحيح:
ممثلة ثنائية | قيمة عشرية |
---|---|
00000000000000000000000000000101 | 5 |
11111111111111111111111111111011 | -5 |
00000000000000000000000000101000 | 40 |
11111111111111111111111111011000 | -40 |
11111111111111111111111111011001 | -41 |
تحويل الثنائي إلى عشري
مثال
function bin2dec(bin){ return parseInt(bin, 2).toString(10); }
- الصفحة السابقة JS Desctructuring
- الصفحة التالية تعريفات JS