JavaScript - Operator Bitwise

Hai there, para para kodings masa depan! Hari ini, kita bakal melihat dunia yang menarik dari Operator Bitwise JavaScript. Saya tahu apa yang kamu pikirkan: "Operator bitwise apa?" Jangan khawatir! Pada akhir pelajaran ini, kamu akan dapat memanipulasi bits seperti seorang pro. Jadi, mari kita mulai petualangan biner ini bersama!

JavaScript - Bitwise Operators

Operator Bitwise JavaScript

Operator bitwise adalah alat khusus di JavaScript yang memungkinkan kita bekerja dengan angka di tingkat biner. Ini berarti kita berhubungan dengan 1 dan 0, seperti komputer melakukan secara internal. Mungkin terdengar menakutkan, tapi percayalah, itu sungguh-sungguh menyenangkan sekali kamu mengenalinya!

Sebelum kita masuk ke hal-hal khusus, mari kita lihat semua operator bitwise yang kita akan pelajari:

Operator Nama Deskripsi
& AND Setiap bit diatur ke 1 jika kedua bit adalah 1
| OR Setiap bit diatur ke 1 jika salah satu dari dua bit adalah 1
^ XOR Setiap bit diatur ke 1 jika hanya salah satu dari dua bit adalah 1
~ NOT Balik semua bit
<< Shift Kiri Geser ke kiri dengan menempatkan nol dari kanan
>> Shift Kanan Geser ke kanan dengan menempatkan salinan bit paling kiri
>>> Shift Kanan Isi Nol Geser ke kanan dengan menempatkan nol dari kiri

Sekarang, mari kitauraikan ini satu per satu!

Operator Bitwise AND (&)

Operator Bitwise AND mirip seperti petugas keras di klub eksklusif. Dia hanya membolehkan 1 melewati jika kedua input adalah 1. Kalau tidak, itu adalah 0. Mari kita lihatnya dalam aksi:

let a = 5;  // 0101 dalam biner
let b = 3;  // 0011 dalam biner
console.log(a & b);  // 0001 dalam biner, yang adalah 1 dalam desimal

Dalam contoh ini, kita membandingkan 5 (0101) dan 3 (0011) bit per bit. Hanya bit paling kanan yang 1 di kedua angka, jadi itu satu-satunya 1 yang melewati. Hasilnya adalah 0001, yang adalah 1 dalam desimal.

Operator Bitwise OR (|)

Operator Bitwise OR mirip seperti penjaga yang lebih lunak. Jika salah satu input adalah 1, dia membolehkan itu melewati. Mari kita lihat bagaimana itu bekerja:

let a = 5;  // 0101 dalam biner
let b = 3;  // 0011 dalam biner
console.log(a | b);  // 0111 dalam biner, yang adalah 7 dalam desimal

Di sini, kita mendapat 1 dimana saja 5 atau 3 memiliki 1, resulting in 0111, yang adalah 7 dalam desimal.

Operator Bitwise XOR (^)

Operator XOR mirip seperti permainan pesta unik di mana kamu hanya diizinkan masuk jika kamu memakai topi atau scarf, tapi bukan keduanya! Dia mengembalikan 1 hanya jika bit berbeda. Cek ini:

let a = 5;  // 0101 dalam biner
let b = 3;  // 0011 dalam biner
console.log(a ^ b);  // 0110 dalam biner, yang adalah 6 dalam desimal

Kita mendapat 1 dimana bit berbeda (kedua dan ketiga dari kanan), resulting in 0110, atau 6 dalam desimal.

Operator Bitwise NOT (~)

Operator NOT seperti hari lawan - dia membalik semua bit. Tetapi ada penangkapan! Di JavaScript, ia juga membalik tanda dan kurangi 1. Mari kita lihat:

let a = 5;  // 0101 dalam biner
console.log(~a);  // -6 dalam desimal

Hasilnya mungkin mengejutkan Anda! Itu karena JavaScript menggunakan representasi complement dua untuk angka negatif. Jadi ~5 sebenarnya adalah -6.

Operator Shift Kiri (<<)

Operator Shift Kiri seperti sistem konveyor yang memindahkan bit ke kiri dan menambahkan nol di kanan. Setiap geser secara efektif menggandakan angka:

let a = 5;  // 0101 dalam biner
console.log(a << 1);  // 1010 dalam biner, yang adalah 10 dalam desimal
console.log(a << 2);  // 10100 dalam biner, yang adalah 20 dalam desimal

Lihat bagaimana 5 menjadi 10 dengan satu geser, dan 20 dengan dua geser? Itu seperti magi!

Operator Shift Kanan (>>)

Operator Shift Kanan melakukan hal yang sebaliknya, memindahkan bit ke kanan. Itu secara efektif meng bagi angka (menembus ke bawah):

let a = 5;  // 0101 dalam biner
console.log(a >> 1);  // 0010 dalam biner, yang adalah 2 dalam desimal

5 dibagi 2 adalah 2,5, tapi kita menembus ke bawah ke 2.

Operator Shift Kanan Isi Nol (>>>)

Operator ini mirip dengan >>, tapi selalu mengisi nol dari kiri, bahkan untuk angka negatif:

let a = -5;  // 11111111111111111111111111111011 dalam biner (32-bit)
console.log(a >>> 1);  // 01111111111111111111111111111101 dalam biner, yang adalah 2147483645 dalam desimal

Ini satu yang sedikit sulit! Ini utama digunakan saat Anda perlu menganggap angka sebagai unsigned.

Dan begitu juga, teman-teman! Anda baru saja mengambil langkah pertama ke dunia operasi bitwise. Operator ini mungkin terlihat sedikit abstrak saat ini, tapi mereka sangat berguna untuk tugas seperti bekerja dengan data biner, membuat fungsi hash, atau optimasi algoritma tertentu.

Ingat, latihan membuat sempurna. Cobalah bermain dengan operator ini, dan segera Anda akan dapat memotong bits seperti seorang pro! Selamat belajar coding, dan may the bits be with you!

Credits: Image by storyset