Farih.co.id
Home Programming Memahami Operator Bitwise dalam JavaScript

Memahami Operator Bitwise dalam JavaScript

magnifying glass and binary

Operator bitwise adalah operator yang bekerja pada level biner. Mereka seringkali sangat cepat untuk dieksekusi dan biasanya bertindak pada dua operan.


Anda dapat menggunakan operator bitwise untuk memanipulasi angka biner, mengoptimalkan kode, mengompres data, dan menerapkan teknik untuk grafik atau pemrograman game. Seperti kebanyakan bahasa pemrograman lainnya, JavaScript memiliki dukungan yang sangat baik untuk operasi bitwise.


Apa Itu Operator?

Sebagian besar bahasa pemrograman menggunakan konsep “operator”—sebuah simbol yang memberi tahu juru bahasa untuk melakukan operasi matematika, relasional, atau logis tertentu.

Ada banyak jenis operator JavaScript yang harus Anda ketahui, dari yang terlihat seperti operator matematika standar, seperti “+”, hingga operator yang membandingkan dua nilai. Operator bitwise adalah kumpulan khusus yang berhubungan dengan bilangan biner.

Bitwise DAN (&) Operator

JavaScript bitwise DAN (&) operator membandingkan bit yang sesuai dari dua operan biner—angka yang hanya berisi 0 dan 1. Untuk setiap pasangan bit input, bit output yang sesuai adalah “1” jika kedua bit input adalah “1” atau “0” jika tidak.

Berikut sintaks operator AND bitwise:

 a & b

Dalam contoh ini, A Dan B adalah operan tempat Anda melakukan operasi bitwise.

Berikut cara kerja operator bitwise AND:

  1. Operasi AND berlaku untuk setiap pasangan bit yang sesuai A Dan B dari kanan ke kiri.
  2. Jika kedua bit adalah 1, hasilnya adalah 1. Jika salah satu bit adalah 0, hasilnya adalah 0.
  3. Hasilnya adalah angka baru dimana setiap bit merepresentasikan hasil dari operasi AND pada bit-bit yang bersesuaian A Dan B.

Misalnya:

 let a = 50; 
let b = 100;

let result = a & b;

console.log(result);

Pada contoh di atas, A adalah 50 dalam desimal, setara dengan bilangan biner 00110010, dan B adalah 100 dalam desimal, setara dengan bilangan biner 01100100. Operator AND membandingkan setiap pasangan bit yang sesuai dari kanan ke kiri dan menghasilkan bilangan biner yang dihasilkan 00100000, yaitu 32 dalam desimal.

Bitwise ATAU (|) Operator

bitwise ATAU (|) operator membandingkan bit yang sesuai dari dua operan dan mengembalikan “1” jika salah satu atau kedua bit adalah “1” dan “0” jika kedua bit adalah “0”.

Inilah sintaks dari operator OR bitwise:

 a | b

Di mana A Dan B adalah operan dari operasi.

Operator bitwise OR (|) bekerja dengan cara yang sama seperti operator AND bitwise. Satu-satunya perbedaan adalah operator OR mengembalikan “1” jika “salah satu” dari bit adalah “1” dan “0” jika bit “keduanya” adalah “0”.

Misalnya:

 let a = 50; 
let b = 100;

let result = a | b;

console.log(result);

Dalam contoh di atas, operator OR bitwise membandingkan setiap pasangan bit dari kanan ke kiri (yaitu, 0 | 0 = 0, 0 | 1 = 1, 1 | 1 = 1, dan seterusnya). Angka biner yang dihasilkan adalah 01110110, yaitu 118 dalam desimal.

Bitwise XOR (^) Operator

XOR bitwise (^) operator membandingkan bit yang sesuai dari dua operan dan mengembalikan “1” jika salah satu tetapi tidak kedua operan adalah “1” dan “0” jika kedua operan adalah “1” atau “0”.

Berikut sintaks operator XOR bitwise:

 a ^ b

Di mana A Dan B adalah operan dari operasi.

Operator bitwise XOR bekerja dengan cara yang sama seperti operator bitwise OR dan AND. Satu-satunya perbedaan adalah mengembalikan “1” jika “salah satu tetapi tidak keduanya” dari operan adalah “1” dan “0” jika “keduanya” dari operan adalah “1” atau “0”.

Misalnya:

 let a = 50; 
let b = 100;

let result = a ^ b;

console.log(result);

Pada contoh di atas, operator XOR membandingkan setiap pasangan bit dari kanan ke kiri (yaitu, 0 ^ 0 = 0, 0 ^ 1 = 1, 1 ^ 1 = 0, dan seterusnya). Angka biner yang dihasilkan adalah 01010110, yaitu 86 dalam desimal.

Bitwise BUKAN (~) Operator

Bitwise TIDAK (~) operator adalah operator unary yang beroperasi pada bilangan bulat tunggal dengan membalikkan semua bitnya. Dengan kata lain, ini mengubah setiap bit “0” menjadi “1” dan setiap bit “1” menjadi “0”.

Inilah sintaks dari operator NOT bitwise:

 ~c

Di mana C adalah operan.

Operator NOT bitwise bekerja dengan membalikkan semua bit operan, termasuk bit tanda.

Misalnya:

 let c = 10; 
let d = -10;

console.log(~c);
console.log(~d);

Pada contoh di atas, operator NOT membalikkan semua bit (yaitu, 01, 10dll.), termasuk bit tanda.

Shift Kiri (<<) Operator

Operator shift kiri menggeser bit dari angka yang diberikan ke kiri. Operator mengambil dua operan: angka yang akan digeser dan jumlah bit yang akan digeser.

Berikut sintaks untuk operator shift kiri:

 a << b

Di mana A adalah operan untuk operator shift kiri, dan B adalah jumlah bit operator akan menggeser operan.

Operator shift kiri bekerja dengan menggeser setiap bit operan ke kiri dengan jumlah posisi yang ditentukan dan membuang kelebihan bit yang digeser ke kiri.

Misalnya:

 let a = 50; 
let b = 2;

let result = a << b;

console.log(result);

Pada contoh di atas, operator shift kiri menggeser 50 desimal dari biner 00110010 sebanyak dua tempat. Nilai biner yang dihasilkan adalah 11001000, yaitu 200 sebagai desimal.

Tanda-Menyebarkan Pergeseran Kanan (>>) Operator

Pergeseran kanan perambatan tanda (>>) menggeser bit angka ke kanan sambil mempertahankan tanda angka aslinya. Operator mengambil dua operan: angka yang akan digeser dan jumlah bit yang akan digeser.

Inilah sintaks untuk operator shift kanan yang menyebarkan tanda:

 a >> b

Di mana A adalah operan untuk operator shift kanan, dan B adalah jumlah bit operator akan menggeser operan.

Operator shift kanan yang menyebarkan tanda bekerja mirip dengan operator shift kiri; satu-satunya perbedaan dalam mode operasi adalah bahwa pergeseran kanan mempertahankan tandanya.

Misalnya:

 let a = -50; 
let b = 2;

let result = a >> b;

console.log(result);

Pada contoh di atas, operator shift kanan menggeser desimal -50 (11001110) dua spasi ke kanan menghasilkan desimal -13 (11110011).

Pergeseran Kanan Tak Bertanda Tangan (>>>) Operator

Pergeseran kanan tak bertanda (>>>) operator menggeser bit angka ke kanan dengan sejumlah posisi tertentu dan mengisi ruang kosong di sebelah kiri dengan nol. Operator membuang kelebihan bit yang bergeser ke kanan.

Inilah sintaks untuk operator shift kanan yang tidak ditandatangani:

 a >>> b

Di mana A adalah operan untuk operator shift kanan, dan B adalah jumlah bit operator akan menggeser operan.

Operator shift kanan yang tidak bertanda tangan bekerja sama dengan shift kanan. Namun, berbeda dengan operator shift kanan (>>), itu tidak mempertahankan tanda angka saat bergeser. Sebagai gantinya, ia memperlakukan angka sebagai bilangan bulat yang tidak ditandatangani dan mengisi bit paling kiri dengan nol.

Misalnya:

 let a = -5; 
let b = 2;

let result = a >>> b;

console.log(result);

Dalam contoh ini, operator shift kanan yang tidak bertanda tangan menggeser “-5” dua spasi ke kanan, secara efektif menghilangkan tanda dan menghasilkan desimal “1073741822”.

Aplikasi Operator Bitwise

Dengan memanipulasi bit individu dalam bilangan biner, operator bitwise dapat membuat fungsionalitas kompleks yang sulit atau tidak mungkin dicapai dengan operasi aritmatika tradisional.

Memahami cara menggunakan operator bitwise dapat membantu Anda membangun aplikasi web yang lebih efisien dan berperforma tinggi.

Comment
Share:

Leave a Reply

Your email address will not be published. Required fields are marked *

Ad