اپراتورهای بیتی در JavaScript

اپراتور
نام
شرح
&
AND
اگر هر دو بیت 1 باشند، هر بیتی به 1 تعریف می شود
|
OR
اگر هر یک از دو بیت 1 باشد، هر بیت را به 1 تنظیم می کند
^
XOR
هر بیت را به 1 تعریف می کند، فقط اگر یکی از دو بیت 1 باشد
~
NOT
همه بیت ها را برعکس میکند
<<
Zero fill left shift
حرکت به سمت چپ با فشار دادن صفر از سمت راست و اجازه دهید بیت های سمت چپ سقوط کنند
>>
Signed right shift
راست را با فشار دادن کپی از بیت سمت چپ در سمت چپ به سمت راست حرکت دهید و بیت های سمت راست را سقوط دهید
>>>
Zero fill right shift
با فشار دادن صفر در سمت چپ، و بیت های سمت راست را سقوط می دهیم
غملیات
نتیجه
مشابه
نتیجه
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 بیت عدد صحیح امضا شده استفاده می کند، 10 بازگشت نخواهد داشت. بازگشت آن 6- است.

00000000000000000000000000000101 (5)

11111111111111111111111111111010 (~5 = 6-)

یک عدد صحیح امضا شده از بیت چپ به عنوان علامت منفی استفاده می کند.

AND

هنگامی که یک AND بر روی یک جفت بیت انجام می شود، اگر هر دو بیت 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 بر میگرداند:

مثال یک بیت:

عملیات
نتیجه
0 | 0
0
0 | 1
1 | 0
1
1 | 1
1

مثال 4 بیت:

عملیات
نتیجه
1111 | 0000
1111
1111 | 0001
1111
1111 | 0010
1111
1111 | 0100
1111

XOR

هنگامی که XOR بیتی بر روی یک جفت بیت انجام می شود، اگر بیت ها متفاوت باشند، آن را 1 می گرداند:

مثال یک بیت:

عملیات
نتیجه
0 ^ 0
0
0 ^ 1
1 ^ 0
1
1 ^ 1

مثال 4 بیت:

عملیات
نتیجه
1111 ^ 0000
1111
1111 ^ 0001
1110
1111 ^ 0010
1101
1111 ^ 0100
1011

 

AND (&) در JavaScript

1 برمیگردد فقط اگر هر دو بیت 1 باشد:

دهدهی
باینری
5
00000000000000000000000000000101
1
00000000000000000000000000000001
5 & 1
00000000000000000000000000000001 (1)

AND
 var x = 5 & 1; 
مشاهده مثال

OR (|) در JavaScript

اگر یکی از بیت ها 1 باشد نتیجه را 1 بر میگرداند.

دهدهی
باینری
5
00000000000000000000000000000101
1
00000000000000000000000000000001
5 | 1
00000000000000000000000000000101 (5)

OR
var x = 5 | 1;
مشاهده مثال

XOR (^) در JavaScript

اگر بیت ها متفاوت باشد نتیجه را 1 بر میگرداند.

دهدهی
باینری
5
00000000000000000000000000000101
1
00000000000000000000000000000001
5 ^ 1
00000000000000000000000000000100 (4)

XOR
 var x = 5 ^ 1; 
مشاهده مثال

NOT (~)در JavaScript

دهدهی
باینری
5
00000000000000000000000000000101
~5
11111111111111111111111111111010 (-6)

NOT
 var x = ~5; 
مشاهده مثال

Left Shift (<<) در JavaScript

این تغییر صفر پرش سمت چپ است. یک یا چند بیت صفر در سمت راست فشار داده می شوند و بیت های سمت چپ سقوط می کنند:

دهدهی
باینری
5
00000000000000000000000000000101
5 << 1
00000000000000000000000000001010 (10)

Left Shift
var x = 5 << 1;
مشاهده مثال

Right Shift (>>)در JavaScript

این یک علامت است که تغییر حق را حفظ می کند. کپیهای بیت چپ از سمت چپ به سمت پایین حرکت می کنند و بیت های سمت راست سقوط می کنند:

دهدهی
باینری
-5
11111111111111111111111111111011
-5 >> 1
11111111111111111111111111111101 (-3)

Right Shift
var x = -5 >> 1;
مشاهده مثال

Right Shift (>>>) در JavaScript

این تغییر شکل صفر است. یک یا چند بیت صفر از سمت چپ به سمت پایین حرکت می کنند و بیت های سمت راست سقوط می کنند:

دهدهی
باینری
5
00000000000000000000000000000101
5 >>> 1
00000000000000000000000000000010 (2)

Right Shift
var x = 5 >>> 1;
مشاهده مثال

اعداد باینری

اعداد دودویی تنها با یک مجموعه بیتی قابل درک است:

Binary Representation
Decimal value
00000000000000000000000000000001
1
00000000000000000000000000000015
2
00000000000000000000000000000150
4
00000000000000000000000000001500
8
00000000000000000000000000015000
16
00000000000000000000000000150000
32
00000000000000000000000001500000
64

تنظیم چند بیت نشان دهنده الگوی باینری است:

Binary Representation
Decimal value
00000000000000000000000000000101
5 (4 + 1)
00000000000000000000000000001101
13 (8 + 4 + 1)
00000000000000000000000000101101
45 (32 + 8 + 4 + 1)

اعداد دوتایی جاوا اسکریپت در فرمت مکمل ذخیره می شوند.
این به این معنی است که یک عدد منفی، Not است از شماره به علاوه 1

Binary Representation
Decimal value
00000000000000000000000000000101
5
11111111111111111111111111111011
-5
00000000000000000000000000000110
6
11111111111111111111111111111010
-6
00000000000000000000000000101000
40
11111111111111111111111111011000
-40

تبدیل دهدهی به دودویی

تبدیل دهدهی به دودویی
function dec2bin(dec){
    return (dec >>> 0).toString(2);
}
مشاهده مثال

تبدیل دودویی به دهدهی

تبدیل دودویی به دهدهی
function bin2dec(bin){
    return parseInt(bin, 2).toString(10);
}
مشاهده مثال

 

نظر شما

لطفا نام و نام خانوادگی خود را وارد کنید
لطفا ایمیل خود را وارد کنید لطفا ایمیل صحیح وارد کنید.
لطفا متن نظر خود را وارد کنید
>

یادگیری JavaScript

مقالات و دروس

به خبرنامه مدرسه طراحی وب ایران (وب مهراز) بپیوندید.

لطفا شماره همراه صحیح وارد کنید.
لطفا ایمیل صحیح وارد کنید.

مقالات مرتبط