IMG-LOGO
×

Tài Liệu Học

Khoá học lập trình Javascript

Khai báo biến & hàm mặc định trong Javascript

[Video] Tạo dự án JS đầu tiên - Lập Trình JS [Video] Khai báo biến - toán tử - Lập Trình JavaScript [Video] Các hàm sẵn có trong js - Khoá Học Lập Trình JS

Mệnh đề điều kiện

[Video] Cấu trúc điều kiện if else switch - Lập trình Javascript

Vòng lặp for, while, do..while

[Video] Tìm hiểu vòng lặp for, while, do .. while trong Javascript

Array & Function & Object

[Video] Tìm hiểu Function trong Javascript [Video] Tìm hiểu Array trong Javascript [Video] Khai báo Object trong Javascript [Video] Gửi giữ liệu qua các trang html bằng javascript - HTML/CSS [Video] Bài tập - ôn tập mảng - quản lý sinh viên - Lập trình Javascript [Video] Khai báo function trong Object - Lập trình Javascript [Video] Tìm hiểu function trong string - Lập trình Javascript

Xử lý sự kiện & thao tác thẻ HTML

[Video] Event - Lập Trình JS [Video] Tương tác lên tags trong HTML bằng JS [Video] Thêm tags vào tags khác bằng javascript + ví du thêm sinh viên - lập trình JS [Video] Tương tác thẻ HTML bằng Javascript qua ví dụ đặt đơn hàng (Order Entry Form) [Video] Bài tập - Quản lý sản phẩm bằng javascript - lập trình javascript [Video] Quản lý sinh viên - Lập trình Javascript

Lưu trữ Javascript

[Video] Cookie - khoá học lập trình JavaScript [Video] Localstorage - Khoá học lập trình JavaScript [Video] Lưu trữ thông tin sinh viên bằng LocalStorage - Lập trình Javascript

Examination & Ôn Tập Tổng Quát

1000 Bài tập JavaScript - Lập Trình JavaScript




Trang Chủ Học JS JavaScript Bitwise Operations - Các toán tử Bitwise

JavaScript Bitwise Operations - Các toán tử Bitwise

by GokiSoft.Com - 12:21 19/05/2020 6,205 Lượt Xem

Các toán tử Bitwise trong JavaScript(JavaScript Bitwise Operators)


Toán tửTênMô tả
&ANDĐặt mỗi bit thành 1 nếu cả hai bit 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
<<Zero fill left shiftTrượt sang trái bằng cách đẩy các số 0 từ bên phải và để các bit ngoài cùng bên trái rơi ra
>>Signed right shiftTrượt sang phải bằng cách đẩy các bản sao của bit ngoài cùng bên trái vào bên trái và để các bit ngoài cùng bên phải rơi ra
>>>Zero fill right shiftTrượt sang phải bằng cách đẩy các số 0 từ bên trái và để các bit ngoài cùng bên phải rơi ra

ví dụ

Toán tửKết quảGiống vớiKết quả
5 & 110101 & 0001 0001
5 | 150101 | 0001 0101
~ 510 ~0101 1010
5 << 1100101 << 1 1010
5 ^ 140101 ^ 0001 0100
5 >> 120101 >> 1 0010
5 >>> 120101 >>> 1 0010



JavaScript sử dụng toán tử bitwise 32 bit(JavaScript Uses 32 bits Bitwise Operands)


JavaScript chứa các số dưới dạng các số thực dấu phẩy dộng 64 bits, nhưng tất cả các toán tử bitwise được thực hiện trên các số nhị phân 32 bit.

Trước khi một toán tử bitwise được thực hiện, JavaScript chuyển các số thành các số nguyên có dấu 32 bit.

Sau khi toán tử bitwise được thực hiện, kết quả được chuyển lại thành các số JavaScript 64 bit.

Tip: Ví dụ trên sử dụng các số nhị phân 4 bits. Bởi vì điều này ~ 5 trả về 10.

Khi JavaScript sử dụng số nguyên có dấu 32 bits, nó sẽ không trả về 10. Nó sẽ trả về -6.

00000000000000000000000000000101 (5)

11111111111111111111111111111010 (~5 = -6)

Một số nguyên có dấu sử dụng bit ngoài cùng phía bên trái như một dấu trừ.



Bitwise AND


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

ví dụ một bit:

Toán tửKết quả
0 & 00
0 & 10
1 & 00
1 & 11
ví dụ 4 bit:
Toán tửKết quả
1111 & 00000000
1111 & 00010001
1111 & 00100010
1111 & 01000100



Bitwise OR


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

ví dụ 1 bit:

Toán tửKết quả
0 | 00
0 | 1
1 | 01
1 | 11
ví dụ 4 bit:
Toán tửKết quả
1111 | 00001111
1111 | 00011111
1111 | 00101111
1111 | 01001111



Bitwise XOR

Khi một bitwise XOR được thực hiện trên một cặp bit, nó trả về một nếu các bit khác nhau:

ví dụ 1 bit:

Toán tửKết quả
0 ^ 00
0 ^ 1
1 ^ 01
1 ^ 1
ví dụ 4 bit:
Toán tửKết quả
1111 ^ 00001111
1111 ^ 00011110
1111 ^ 00101101
1111 ^ 01001011



JavaScript Bitwise AND (&)


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

Thập phânNhị phân
500000000000000000000000000000101
100000000000000000000000000000001
5 & 100000000000000000000000000000001 (1)

ví dụ

var x = 5 & 1;
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Bitwise AND</h2>

<p id="demo">My First Paragraph.</p>

<script>
document.getElementById("demo").innerHTML = 5 & 1;
</script>

</body>
</html> 



JavaScript Bitwise OR (|)


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

Thập phânNhị phân
500000000000000000000000000000101
100000000000000000000000000000001
5 | 100000000000000000000000000000101 (5)

ví dụ

var x = 5 | 1;
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Bitwise OR</h2>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = 5 | 1;
</script>

</body>
</html>



JavaScript Bitwise XOR (^)


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

Thập phânNhị phân
500000000000000000000000000000101
100000000000000000000000000000001
5 ^ 100000000000000000000000000000100 (4)

ví dụ

var x = 5 ^ 1;
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Bitwise XOR</h2>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = 5 ^ 1;
</script>

</body>
</html>



JavaScript Bitwise NOT (~)


Thập phânNhị phân
500000000000000000000000000000101
~511111111111111111111111111111010 (-6)

ví dụ

var x = ~5;
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Bitwise NOT</h2>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = ~ 5;
</script>

</body>
</html>



JavaScript (Zero Fill) Bitwise Left Shift (<<)


Đây là một dấu trượt số không bên trái. Một hoặc nhiều zero bits được đẩy vào từ bên phải, và một bits ngoài cùng bên trái rơi ra:

Thập phânNhị phân
500000000000000000000000000000101
5 << 100000000000000000000000000001010 (10)

ví dụ

var x = 5 << 1;
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Bitwise Left</h2>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = 5 << 1;
</script>

</body>
</html>



JavaScript (Sign Preserving) Bitwise Right Shift (>>)


Đây là một dấu bảo toàn mỗi khi trượt bên phải. Bản sao của ngoài cùng phía bên trái được đẩy vào từ bên trái, và bit ngoài cùng bên phải rơi ra:

Thập phânNhị phân
500000000000000000000000000000101
5 >>> 100000000000000000000000000000010 (2)

ví dụ

var x = 5 >>> 1;
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Bitwise Right</h2>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = 5 >>> 1;
</script>

</body>
</html>



Các số nhị phân


Các số nhị phân chỉ với một bit được đặt thì dễ hiểu:

Đại diện nhị phânGiá trị thập phân
000000000000000000000000000000011
000000000000000000000000000000102
000000000000000000000000000001004
000000000000000000000000000010008
0000000000000000000000000001000016
0000000000000000000000000010000032
0000000000000000000000000100000064

Đặt thêm một vài bit cho thấy mẫu nhị phân:

Đại diện nhị phânGiá trị thập phân
000000000000000000000000000001015 (4 + 1)
0000000000000000000000000000110113 (8 + 4 + 1)
0000000000000000000000000010110145 (32 + 8 + 4 + 1)

Các số nhị phân JavaScript được lưu trữ trong hai định dạng bổ sung.

Điều này nghĩa là một số âm là bitwise NOT của số cộng 1:

Đại diện nhị phânGiá trị thập phân
000000000000000000000000000001015
11111111111111111111111111111011-5
000000000000000000000000000001106
11111111111111111111111111111010-6
0000000000000000000000000010100040
11111111111111111111111111011000-40



Chuyển thập phân thành nhị phân(Converting Decimal to Binary)


ví dụ

function dec2bin(dec){
  return (dec >>> 0).toString(2);
}
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Convert Decimal to Binary</h2>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = dec2bin(-5);
function dec2bin(dec){
  return (dec >>> 0).toString(2);
}
</script>

</body>
</html>



Chuyển nhị phân thành thập phân(Converting Binary to Decimal)


function bin2dec(bin){
  return parseInt(bin, 2).toString(10);
}
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Convert Binary to Decimal</h2>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = bin2dec(101);
function bin2dec(bin){
  return parseInt(bin, 2).toString(10);
}
</script>

</body>
</html>



Bình luận



Tài Liệu Tham Khảo

Đã sao chép!!!