Hướng dẫn dùng 45+32 JavaScript

Hoạt động Bitwise javaScript

Toán tử Bitwise JavaScript

Toán tửTênDescription
& AND Đặt từng bit thành 1 nếu cả hai bit đều là 1
| OR Đặt mỗi bit thành 1 nếu một trong hai bit là 1
^ XOR Đặt mỗi bit thành 1 nếu chỉ một trong hai bit là 1
~ NOT Đảo ngược tất cả các bit
> Signed right shift Dịch sang phải bằng cách đẩy các bit ngoài cùng bên trái vào từ bên trái và để các bit ngoài cùng bên phải rơi ra
>>> Zero fill right shift Dịch sang phải bằng cách đẩy các số không từ bên trái vào và để các bit ngoài cùng bên phải rơi ra

Các ví dụ

Hoạt độngKết quảTương đươngKết quả
5 & 1 1 0101 & 0001  0001
5 | 1 5 0101 | 0001  0101
~ 5 10  ~0101  1010
5 1 2 0101 >> 1  0010
5 >>> 1 2 0101 >>> 1  0010

JavaScript Sử dụng Toán hạng Bitwise 32 bit

JavaScript lưu trữ các số dưới dạng số dấu chấm động 64 bit, nhưng tất cả các phép toán bit đều được thực hiện trên số nhị phân 32 bit.

Trước khi thực hiện thao tác theo bit, JavaScript sẽ chuyển đổi số thành số nguyên có dấu 32 bit.

Sau khi thao tác bitwise được thực hiện, kết quả được chuyển đổi trở lại các số JavaScript 64 bit.

Các ví dụ trên sử dụng số nhị phân không dấu 4 bit. Nên ~5 sẽ trả lại 10.
Vì JavaScript sử dụng số nguyên có dấu 32 bit nên nó sẽ không trả về 10. Nó sẽ trả về -6.
00000000000000000000000000000101 [5]
1111111111111111111111111111111010 [~5 = -6]
Một số nguyên có dấu sử dụng bit ngoài cùng bên trái làm dấu trừ.

Bitwise AND

Khi một bit AND được thực hiện trên một cặp bit, nó sẽ trả về 1 nếu cả hai bit đều là 1.

Ví dụ 1 bit

Hoạt độngKết quả
0 & 0 0
0 & 1 0
1 & 0 0
1 & 1 1

Ví dụ 4 bit

Hoạt độngKết quả
1111 & 0000 0000
1111 & 0001 0001
1111 & 0010 0010
1111 & 0100 0100

Khi một bit OR được thực hiện trên một cặp bit, nó sẽ trả về 1 nếu một trong các bit là 1.

Ví dụ 1 bit

Hoạt độngKết quả
0 | 0 0
0 | 1
1 | 0 1
1 | 1 1

Ví dụ 4 bit

Hoạt độngKết quả
1111 | 0000 1111
1111 | 0001 1111
1111 | 0010 1111
1111 | 0100 1111

Bitwise XOR

Khi một XOR theo chiều bit được thực hiện trên một cặp bit, nó sẽ trả về 1 nếu các bit khác nhau.

Ví dụ 1 bit

Hoạt độngKết quả
0 ^ 0 0
0 ^ 1
1 ^ 0 1
1 ^ 1

Ví dụ 4 bít

Hoạt độngkết quả
1111 ^ 0000 1111
1111 ^ 0001 1110
1111 ^ 0010 1101
1111 ^ 0100 1011

JavaScript Bitwise AND [&]

Bitwise AND chỉ trả về 1 nếu cả hai bit đều là 1.

Số thập phânSố nhị phân
5 00000000000000000000000000000101
1 00000000000000000000000000000001
5 & 1 00000000000000000000000000000001 [1]

JavaScript Bitwise OR [|]

Bitwise OR trả về 1 nếu một trong các bit là 1.

Số thập phânSố nhị phân
5 00000000000000000000000000000101
1 00000000000000000000000000000001
5 | 1 00000000000000000000000000000101 [5]

JavaScript Bitwise XOR [^]

Bitwise XOR trả về 1 nếu các bit khác nhau.

Số thập phânSố nhị phân
5 00000000000000000000000000000101
1 00000000000000000000000000000001
5 ^ 1 00000000000000000000000000000100 [4]

JavaScript Bitwise NOT [~]

Số thập phânSố nhị phân
5 00000000000000000000000000000101
~5 11111111111111111111111111111010 [-6]

JavaScript [Zero Fill] Bitwise Left Shift [> 1 11111111111111111111111111111101 [-3]

JavaScript [Zero Fill] Bitwise right Shift [>>>]

Đây là một sự thay đổi bên phải điền bằng không. Một hoặc nhiều bit 0 được đẩy vào từ bên trái và các bit ngoài cùng bên phải rơi ra.

Số thập phânSố nhị phân
5 00000000000000000000000000000101
5 >>> 1 00000000000000000000000000000010 [2]

Số nhị phân

Các số nhị phân chỉ có một bit được thiết lập rất dễ hiểu.

Biểu diễn số nhị phânGiá trị số thập phân
00000000000000000000000000000001 1
00000000000000000000000000000010 2
00000000000000000000000000000100 4
00000000000000000000000000001000 8
00000000000000000000000000010000 16
00000000000000000000000000100000 32
00000000000000000000000001000000 64

Đặt thêm một vài bit nữa sẽ hiển thị mẫu nhị phân.

Biểu diễn số nhị phânGiá trị số thập phân
00000000000000000000000000000101 5 [4 + 1]
00000000000000000000000000001101 13 [8 + 4 + 1]
00000000000000000000000000101101 45 [32 + 8 + 4 + 1]

Chuyển đổi thập phân sang nhị phân

Ví dụ

function dec2bin[dec]{
  return [dec >>> 0].toString[2];
}

Xem kết quả

Chuyển đổi nhị phân sang thập phân

Ví dụ

function bin2dec[bin]{
  return parseInt[bin, 2].toString[10];
}

Xem kết quả

Chủ Đề