JavaScript - Operator Bitwise
Halo sana, para ahli coding masa depan! Hari ini, kita akan 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 bit seperti seorang pro. Jadi, mari kita mulai petualangan biner ini bersama!
Operator Bitwise JavaScript
Operator bitwise adalah alat khusus di JavaScript yang memungkinkan kita bekerja dengan angka pada level biner. Artinya kita berurusan dengan 1 dan 0, seperti komputer melakukan secara internal. Mungkin terdengar menakutkan, tapi percayalah, ini sungguh menyenangkan sekali kamu mengenalinya!
Sebelum kita masuk ke detailnya, mari kita lihat semua operator bitwise yang akan kita 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 seperti seorang penjaga pintu yang sangat ketat di klub eksklusif. Dia hanya membiarkan 1 melewati jika kedua masukan adalah 1. Kalau tidak, itu adalah 0. Mari kita lihat contohnya:
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 seperti seorang pengawas yang lebih lunak. Jika salah satu masukan adalah 1, dia membiarkannya 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, sehingga hasilnya 0111, yang adalah 7 dalam desimal.
Operator Bitwise XOR (^)
Operator XOR seperti sebuah permainan pesta yang unik di mana kamu hanya diizinkan masuk jika kamu memakai topi atau scarf, tapi bukan keduanya! Dia mengembalikan 1 hanya jika bit berbeda. Periksa 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 di mana bit berbeda (kedua dan ketiga dari kanan), sehingga hasilnya 0110, atau 6 dalam desimal.
Operator Bitwise NOT (~)
Operator NOT seperti hari lawan - dia membalik semua bit. Tetapi ada pengecualian! Di JavaScript, ia juga membalik tanda dan kurangi 1. Mari kita lihat:
let a = 5; // 0101 dalam biner
console.log(~a); // -6 dalam desimal
Hasil ini mungkin mengejutkan Anda! Itu karena JavaScript menggunakan representasi complement dua untuk angka negatif. Jadi ~5 sebenarnya -6.
Operator Shift Kiri (<<)
Operator Shift Kiri seperti sebuah 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 magis!
Operator Shift Kanan (>>)
Operator Shift Kanan melakukan hal yang sebaliknya, memindahkan bit ke kanan. Itu secara efektif mengiris angka (mengembalikan 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 mengembalikan 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 agak sulit! Ini utama digunakan saat Anda perlu menangani angka sebagai unsigned.
Dan itu saja, teman-teman! Anda baru saja mengambil langkah pertama ke dunia operasi bitwise. Operator ini mungkin tampak 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 untuk bermain dengan operator ini, dan segera Anda akan bisa memotong bit seperti seorang pro! Selamat coding, dan may the bits be with you!
Credits: Image by storyset