Tutorial JS

JS RUMAH Pengenalan JS JS Dimana Keluaran JS Pernyataan JS Sintaks JS Komentar JS Variabel JS JS Let JS Const Operator JS JS Aritmatika Tugas JS Tipe Data JS Fungsi JS Objek JS Acara JS String JS Metode String JS Pencarian String JS Template String JS Nomor JS Metode Nomor JS JS Array Metode Array JS Sortir Array JS Iterasi Array JS JS Array Const Tanggal JS Format Tanggal JS Metode Dapatkan Tanggal JS Metode Penetapan Tanggal JS JS Matematika JS Acak JS Boolean Perbandingan JS Ketentuan JS Beralih JS JS Loop Untuk JS Loop Untuk Masuk JS Loop Untuk Of JS Loop Sementara Istirahat JS JS Iterable JS Set Peta JS Tipe JS Konversi Tipe JS JS Bitwise JS RegExp Kesalahan JS Lingkup JS Pengangkatan JS Mode Ketat JS JS Kata Kunci ini Fungsi Panah JS Kelas JS JS JSON Debug JS Panduan Gaya JS Praktik Terbaik JS Kesalahan JS Kinerja JS Kata-kata Cadangan JS

Versi JS

Versi JS JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Tepi Sejarah JS

Objek JS

Definisi Objek Properti Objek Metode Objek Tampilan Objek Aksesor Objek Konstruktor Objek Prototipe Objek Obyek Iterable Set Objek Peta Objek Referensi Objek

Fungsi JS

Definisi Fungsi Parameter Fungsi Panggilan Fungsi Panggilan Fungsi Fungsi Terapkan Penutupan Fungsi

Kelas JS

Perkenalan Kelas Warisan Kelas Kelas Statis

JS Asinkron

Panggilan Balik JS JS Asinkron JS Janji JS Async/Menunggu

JS HTML DOM

Pengenalan DOM Metode DOM Dokumen DOM Elemen DOM HTML DOM Formulir DOM CSS DOM Animasi DOM Acara DOM Pendengar Acara DOM Navigasi DOM Node DOM Koleksi DOM Daftar Node DOM

JS Browser BOM

Jendela JS Layar JS Lokasi JS Sejarah JS JS Navigator Peringatan Munculan JS Waktu JS JS Cookies

JS Web API

Pengantar API Web API Formulir Web API Riwayat Web API Penyimpanan Web API Pekerja Web API Pengambilan Web API Geolokasi Web

JS AJAX

Pengenalan AJAX AJAX XMLHttp Permintaan AJAX Tanggapan AJAX File XML AJAX AJAX PHP AJAX ASP Basis Data AJAX Aplikasi AJAX Contoh AJAX

JS JSON

Perkenalan JSON Sintaks JSON JSON vs XML Tipe Data JSON Penguraian JSON Stringify JSON Objek JSON Array JSON Server JSON JSON PHP JSON HTML JSON JSONP

JS vs jQuery

Pemilih jQuery jQuery HTML jQuery CSS jQuery DOM

Grafik JS

Grafik JS JS Kanvas JS Plotly JS Chart.js Bagan Google JS JS D3.js

Contoh JS

Contoh JS JS HTML DOM Masukan HTML JS Objek HTML JS Acara HTML JS JS Browser Editor JS Latihan JS kuis JS Sertifikat JS

Referensi JS

Objek JavaScript Objek DOM HTML


Operasi Bitwise JavaScript


Operator Bitwise JavaScript

Operator Name Description
& AND Sets each bit to 1 if both bits are 1
| OR Sets each bit to 1 if one of two bits is 1
^ XOR Sets each bit to 1 if only one of two bits is 1
~ NOT Inverts all the bits
<< Zero fill left shift Shifts left by pushing zeros in from the right and let the leftmost bits fall off
>> Signed right shift Shifts right by pushing copies of the leftmost bit in from the left, and let the rightmost bits fall off
>>> Zero fill right shift Shifts right by pushing zeros in from the left, and let the rightmost bits fall off

Contoh

Operation Result Same as Result
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

JavaScript Menggunakan 32 bit Bitwise Operand

JavaScript menyimpan angka sebagai 64 bit angka floating point, tetapi semua operasi bitwise dilakukan pada angka biner 32 bit.

Sebelum operasi bitwise dilakukan, JavaScript mengonversi angka menjadi bilangan bulat bertanda 32 bit.

Setelah operasi bitwise dilakukan, hasilnya diubah kembali menjadi 64 bit angka JavaScript.

Contoh di atas menggunakan 4 bit bilangan biner unsigned. Karena itu ~ 5 mengembalikan 10.

Karena JavaScript menggunakan bilangan bulat bertanda 32 bit, itu tidak akan mengembalikan 10. Ini akan mengembalikan -6.

00000000000000000000000000000101 (5)

11111111111111111111111111111111010 (~5 = -6)

Bilangan bulat bertanda menggunakan bit paling kiri sebagai tanda minus.



Sedikit demi sedikit DAN

Ketika AND bitwise dilakukan pada sepasang bit, ia mengembalikan 1 jika kedua bit adalah 1.

Contoh satu bit:
OperasiHasil
0 & 00
0 & 10
1 & 00
1 & 11
4 bit contoh:
OperasiHasil
1111 & 00000000
1111 & 00010001
1111 & 00100010
1111 & 01000100

Sedikit demi sedikit ATAU

Ketika bitwise OR dilakukan pada sepasang bit, ia mengembalikan 1 jika salah satu bitnya adalah 1:

Contoh satu bit:
OperasiHasil
0 | 00
0 | 1
1 | 01
1 | 11
4 bit contoh:
OperasiHasil
1111 | 00001111
1111 | 00011111
1111 | 00101111
1111 | 01001111

Bitwise XOR

Ketika XOR bitwise dilakukan pada sepasang bit, ia mengembalikan 1 jika bitnya berbeda:

Contoh satu bit:
OperasiHasil
0 ^ 00
0 ^ 1
1 ^ 01
1 ^ 1
4 bit contoh:
OperasiHasil
1111^00001111
1111^00011110
1111^00101101
1111^01001011

JavaScript Sedikit demi sedikit DAN (&)

Bitwise AND mengembalikan 1 hanya jika kedua bit adalah 1:

Desimalbiner
500000000000000000000000000000000101
10000000000000000000000000000000001
5 & ​​1000000000000000000000000000000001 (1)

Contoh

let x = 5 & 1;

JavaScript Bitwise ATAU (|)

Bitwise OR mengembalikan 1 jika salah satu bitnya adalah 1:

Desimalbiner
500000000000000000000000000000000101
10000000000000000000000000000000001
5 | 100000000000000000000000000000101 (5)

Contoh

let x = 5 | 1;

JavaScript Bitwise XOR (^)

Bitwise XOR mengembalikan 1 jika bitnya berbeda:

Desimalbiner
500000000000000000000000000000000101
10000000000000000000000000000000001
5 ^ 100000000000000000000000000000100 (4)

Contoh

let x = 5 ^ 1;

JavaScript Bitwise TIDAK (~)

Desimalbiner
500000000000000000000000000000000101
~511111111111111111111111111111010 (-6)

Contoh

let x = ~5;

JavaScript (Isi Nol) Pergeseran Kiri Bitwise (<<)

Ini adalah shift kiri tanpa isi. Satu atau lebih bit nol didorong masuk dari kanan, dan bit paling kiri jatuh:

Desimalbiner
500000000000000000000000000000000101
5 << 100000000000000000000000000001010 (10)

Contoh

let x = 5 << 1;

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

Ini adalah tanda melestarikan pergeseran kanan. Salinan bit paling kiri didorong masuk dari kiri, dan bit paling kanan jatuh:

Desimalbiner
-511111111111111111111111111111011
-5 >> 111111111111111111111111111111101 (-3)

Contoh

let x = -5 >> 1;

JavaScript (Isi Nol) Shift Kanan (>>>)

Ini adalah shift kanan tanpa isi. Satu atau lebih bit nol didorong masuk dari kiri, dan bit paling kanan jatuh:

Desimalbiner
500000000000000000000000000000000101
5 >>> 10000000000000000000000000000000010 (2)

Contoh

let x = 5 >>> 1;

Bilangan Biner

Angka biner dengan hanya satu set bit mudah dimengerti:

Representasi BinerNilai desimal
00000000000000000000000000000000011
00000000000000000000000000000000102
000000000000000000000000000000001004
0000000000000000000000000000000010008
00000000000000000000000000000000000016
000000000000000000000000000010000032
0000000000000000000000000100000064

Menyetel beberapa bit lagi mengungkapkan pola biner:

Representasi BinerNilai desimal
000000000000000000000000000000001015 (4 + 1)
0000000000000000000000000000110113 (8 + 4 + 1)
000000000000000000000000000010110145 (32 + 8 + 4 + 1)

Bilangan biner JavaScript disimpan dalam format pelengkap dua.

Ini berarti bahwa angka negatif adalah BUKAN bitwise dari angka ditambah 1:

Representasi BinerNilai desimal
000000000000000000000000000000001015
11111111111111111111111111111011-5
000000000000000000000000000000001106
11111111111111111111111111111010-6
00000000000000000000000000010100040
11111111111111111111111111111011000-40

Mengubah Desimal ke Biner

Contoh

function dec2bin(dec){
  return (dec >>> 0).toString(2);
}

Mengubah Biner ke Desimal

Contoh

function bin2dec(bin){
  return parseInt(bin, 2).toString(10);
}