Sau đây, Thế giới JS, share tiếp về Toán tử bitwise trong javaScript và các ví dụ để ae dễ hiểu nó hơn.
Thí dụ:
// https://vpsus.vn/ // https://www.facebook.com/groups/893052378563701 // https://twitter.com/thegioijs var a = 4; var b = 1; document.write("A & B = " + (a & b) + '<br>'); document.write("A | B = " + (a | b) + '<br>'); document.write("~A = " + (~a) + '<br>');
Đầu ra:
A & B = 0 A | B = 5 ~A = -5
Giống như C, C++, Java, Python và nhiều ngôn ngữ khác, JavaScript cũng hỗ trợ các thao tác bit-khôn ngoan. Trong JavaScript, một số được lưu trữ dưới dạng số dấu phẩy động 64 bit nhưng thao tác bit khôn ngoan được thực hiện trên số nhị phân 32 bit, tức là để thực hiện thao tác bit, JavaScript chuyển đổi số thành số nhị phân 32 bit ( đã ký) và thực hiện thao tác và chuyển đổi lại kết quả thành số 64 bit.
1.Dưới đây là một số toán tử logic Bitwise được sử dụng trong JavaScript.
- Bitwise AND ( & ): Nó là một toán tử nhị phân tức là chấp nhận hai toán hạng. Bitwise AND (&) trả về 1 nếu cả hai bit được đặt (tức là 1) và 0 trong bất kỳ trường hợp nào khác.
A | B | ĐẦU RA ( A & B ) |
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
- Bit-Wise OR ( | ): Nó là một toán tử nhị phân tức là chấp nhận hai toán hạng.Bitwise OR ( | ) trả về 1 nếu bất kỳ toán hạng nào được đặt (tức là 1) và 0 trong mọi trường hợp khác.
A | B | ĐẦU RA ( A | B ) |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
- Bit-Wise XOR ( ^ ): Nó là một toán tử nhị phân tức là chấp nhận hai toán hạng. Bitwise XOR ( ^ ) trả về 1 nếu cả hai toán hạng khác nhau và 0 trong bất kỳ trường hợp nào khác.
A | B | ĐẦU RA ( A ^ B ) |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
- Bit-Wise NOT ( ~ ): Nó là một toán tử đơn nguyên tức là chấp nhận các toán hạng đơn lẻ. Bitwise NOT ( ~ ) lật các bit tức là 0 trở thành 1 và 1 trở thành 0.
A | ĐẦU RA ( ~A ) |
0 | 1 |
1 | 0 |
2.Dưới đây là một số toán tử dịch chuyển bit thông minh được sử dụng trong JavaScript.
- Shift trái ( << ): Đây là toán tử nhị phân tức là nó chấp nhận hai toán hạng. Toán tử đầu tiên chỉ định số và toán tử thứ hai chỉ định số bit cần dịch chuyển. Mỗi bit được dịch sang trái và bit 0 được thêm vào từ bên phải. Các bit thừa từ bên trái bị loại bỏ.
A | 6 ( 00000000000000000000000000000110 ) |
B | 1 ( 00000000000000000000000000000001 ) |
ĐẦU RA ( A << B ) | 12 ( 00000000000000000000000000001100 ) |
- Dấu hiệu lan truyền Dịch chuyển phải ( >> ): Đây là toán tử nhị phân tức là nó chấp nhận hai toán hạng. Toán hạng đầu tiên chỉ định số và toán hạng thứ hai chỉ định số bit cần dịch chuyển. Mỗi bit được dịch chuyển sang bên phải, các bit tràn sẽ bị loại bỏ. Đây là Truyền ký hiệu vì các bit được thêm từ bên trái phụ thuộc vào dấu của số (tức là 0 nếu dương và 1 nếu âm)
A | 6 ( 00000000000000000000000000000110 ) |
B | 1 ( 00000000000000000000000000000001 ) |
ĐẦU RA ( A >> B ) | 3 ( 00000000000000000000000000000011 ) |
- Zero fill Right Shift ( >>> ): Đây là toán tử nhị phân tức là nó chấp nhận hai toán hạng. Toán hạng đầu tiên chỉ định số và toán hạng thứ hai chỉ định số bit cần dịch chuyển. Mỗi bit được dịch chuyển sang phải, các bit tràn sẽ bị loại bỏ. Bit 0 được thêm vào từ bên trái để dịch chuyển sang phải điền vào số 0 của nó.
A | 6 ( 00000000000000000000000000000110 ) |
B | 1 ( 00000000000000000000000000000001 ) |
ĐẦU RA ( A >>> B ) | 3 ( 00000000000000000000000000000011 ) |
3.Dưới đây là ví dụ của các toán tử được mô tả ở trên.
// https://vpsus.vn/ // https://www.facebook.com/groups/893052378563701 // https://twitter.com/thegioijs var a = 6; var b = 1; // AND Operation document.write("A & B = " + (a & b) + '<br>'); // OR operation document.write("A | B = " + (a | b) + '<br>'); // NOT operation document.write("~A = " + (~a) + '<br>'); // Sign Propagating Right Shift document.write("A >> B = " + (a >> b) + '<br>'); // Zero Fill Right Shift document.write("A >>> B = " + (a >>> b) + '<br>'); // Left Shift document.write("A << B = " + (a << b) + '<br>');
Đầu ra:
A & B = 0 A | B = 7 ~A = -7 A >> B = 3 A >>> B = 3 A << B = 12
Trình duyệt support:
- Google Chrome
- Internet Explorer
- Firefox
- Apple Safari
- Opera
Trên đây là tất cả những gì về Toán tử Bitwise trong javascript mà bạn cần biết. Nếu bạn có bất kỳ câu hỏi liên quan tới Toán tử Bitwise, hãy chủ động liên hệ và inbox cho chúng tôi, để giúp đỡ bạn sớm nhất
Tiếp theo, hãy cùng Thế giới JS tìm hiểu thêm các kiến thức về Javascript trong các bài tiếp theo trong series học miễn phí Javascript từ cơ bản tới nâng cao.
Nếu bạn cảm thấy hữu ích và yêu thích Thế giới JS, hãy tham gia và theo dõi chúng tôi để nhận thêm nhiều kiến thức MIỄN PHÍ hơn nữa nhé:
Share to learn more than!