CCalculate.Studio

💾 Kalkulator Operasi Bitwise

Operasi bitwise bekerja langsung pada digit biner (bit) individual dari representasi biner suatu bilangan, bukan memperlakukan bilangan tersebut sebagai satu nilai desimal utuh. Kalkulator ini melakukan enam operasi bitwise standar — AND, OR, XOR, NOT, geser kiri dan geser kanan — pada bilangan bulat 32-bit non-negatif dan menampilkan representasi biner dari input dan hasilnya.

Terakhir ditinjau: 2026-07-07
Add as preferred on Google

Memahami tabel kebenaran bitwise

Setiap operasi bitwise logis mengikuti tabel kebenaran tetap yang diterapkan secara independen pada setiap pasangan posisi bit yang bersesuaian.

Bit ABit BANDORXOR
00000
01011
10011
11110
  • Kalkulator ini membatasi input pada rentang bilangan bulat 32-bit bertanda (0 hingga 2.147.483.647) karena operator bitwise JavaScript secara internal mengonversi bilangan menjadi representasi 32-bit sebelum beroperasi, mengikuti spesifikasi ECMAScript.
  • NOT (~A) selalu menghasilkan hasil yang, jika ditafsirkan sebagai bilangan bulat 32-bit bertanda, sama dengan −(A + 1) — kalkulator ini menampilkan padanan 32-bit tak bertanda (misalnya ~12 ditampilkan sebagai 4.294.967.283, bukan −13) sehingga representasi biner yang ditampilkan tidak ambigu.
  • Jumlah geser (B) yang lebih besar dari 31 dibatasi menjadi 31 oleh kalkulator ini, karena menggeser nilai 32-bit sebanyak 32 posisi atau lebih di JavaScript berputar kembali (hanya menggunakan 5 bit rendah dari jumlah geser) alih-alih menghasilkan 0 seperti yang mungkin diduga secara intuitif.

Apa itu operasi bitwise?

Operasi bitwise memproses suatu bilangan pada tingkat digit biner (bit) individualnya, membandingkan atau menggeser 0 dan 1 dari representasi basis-2-nya, bukan melakukan aritmetika basis-10 biasa. Setiap bilangan bulat dapat ditulis dalam biner sebagai rangkaian bit, masing-masing mewakili pangkat 2 — misalnya, 12 dalam biner adalah 1100, yang berarti 1×8 + 1×4 + 0×2 + 0×1.

Operasi bitwise logis — AND, OR, XOR (exclusive or) dan NOT — membandingkan posisi bit yang bersesuaian dari dua bilangan (atau membalik bit dari satu bilangan) menurut aturan standar logika Boolean, diterapkan secara independen pada setiap posisi bit. Operasi geser — geser kiri dan geser kanan — memindahkan semua bit suatu bilangan sejumlah posisi tertentu ke kiri atau kanan, yang secara matematis setara dengan mengalikan atau membagi dengan pangkat 2.

Operasi bitwise adalah dasar ilmu komputer dan pemrograman tingkat rendah: digunakan untuk mengatur, menghapus dan memeriksa flag individual dalam sekumpulan opsi (bit flag), untuk perkalian dan pembagian cepat dengan pangkat 2, untuk algoritma kriptografi, untuk manipulasi grafik dan warna (menggabungkan kanal merah/hijau/biru), dan untuk pengodean data yang ringkas.

Cara menggunakan kalkulator bitwise ini

  1. Masukkan bilangan pertama (A) sebagai bilangan bulat non-negatif (0 hingga 2.147.483.647, rentang bilangan bulat 32-bit bertanda).
  2. Masukkan bilangan kedua (B). Untuk AND, OR dan XOR, ini adalah operan kedua yang dibandingkan bit-demi-bit dengan A. Untuk operasi geser, ini adalah jumlah posisi geser (0–31 efektif; nilai lebih besar dibatasi pada 31). Untuk NOT, B diabaikan karena NOT hanya beroperasi pada A.
  3. Pilih operasi: AND, OR, XOR, NOT, geser kiri, atau geser kanan.
  4. Baca hasil desimal, beserta representasi biner dari A, B (atau jumlah geser), dan hasilnya.

Cara kerja setiap operasi bitwise

AND: bit bernilai 1 hanya jika kedua bit yang bersesuaian bernilai 1
OR: bit bernilai 1 jika setidaknya satu bit yang bersesuaian bernilai 1
XOR: bit bernilai 1 jika tepat satu bit yang bersesuaian bernilai 1
Geser kiri: A << B = A × 2^B; Geser kanan: A >> B = ⌊A ÷ 2^B⌋
Contoh: 12 AND 10 = 8; 12 OR 10 = 14; 12 XOR 10 = 6; 12 << 2 = 48; 12 >> 2 = 3

AND membandingkan setiap posisi bit dan mengembalikan 1 hanya jika kedua bit bernilai 1, selain itu 0. Contoh perhitungan: 12 (1100) AND 10 (1010) = 8 (1000), karena hanya posisi bit ketiga (bernilai 8) yang bernilai 1 pada kedua bilangan.

OR membandingkan setiap posisi bit dan mengembalikan 1 jika setidaknya satu dari kedua bit bernilai 1. Contoh perhitungan: 12 (1100) OR 10 (1010) = 14 (1110). XOR (exclusive or) mengembalikan 1 jika tepat satu dari kedua bit bernilai 1 (tetapi tidak keduanya). Contoh perhitungan: 12 (1100) XOR 10 (1010) = 6 (0110).

NOT membalik setiap bit dari satu bilangan (0 menjadi 1, 1 menjadi 0). Karena kalkulator ini beroperasi pada nilai 32-bit, NOT 12 membalik seluruh 32 bit, menghasilkan 4.294.967.283 jika ditafsirkan sebagai bilangan bulat 32-bit tak bertanda (representasi komplemen dua dari −13 jika ditafsirkan sebagai bilangan bulat bertanda).

Geser kiri (A << B) memindahkan setiap bit A ke kiri sejumlah B posisi, mengisi bit orde-rendah yang kosong dengan 0 — setara dengan mengalikan A dengan 2^B. Contoh perhitungan: 12 << 2 = 48 (setara dengan 12 × 2² = 12 × 4 = 48). Geser kanan (A >> B) memindahkan setiap bit A ke kanan sejumlah B posisi, membuang bit orde-rendah — setara dengan pembagian bilangan bulat A dengan 2^B, dibulatkan ke bawah. Contoh perhitungan: 12 >> 2 = 3 (setara dengan ⌊12 ÷ 4⌋ = 3).

Kesalahan umum

  • Mengacaukan AND/OR bitwise dengan AND/OR logis (boolean) — operator bitwise bekerja pada setiap bit suatu bilangan secara independen, sedangkan operator logis memperlakukan seluruh nilai sebagai satu kondisi benar/salah tunggal; keduanya menghasilkan hasil yang berbeda kecuali dalam kasus khusus nilai 0 dan 1.
  • Mengharapkan geser kiri dengan jumlah besar selalu menghasilkan bilangan yang lebih besar secara proporsional — geser yang cukup jauh dapat mendorong bit signifikan melewati batas 32-bit, menyebabkannya terbuang (overflow).
  • Salah membaca hasil NOT — karena NOT membalik seluruh 32 bit, hasil desimal tak bertanda dari ~A terlihat jauh lebih besar daripada A itu sendiri, meskipun dalam penafsiran komplemen dua bertanda hasil tersebut sebenarnya mewakili bilangan negatif kecil, −(A+1).
  • Memperlakukan geser kanan selalu setara dengan pembagian biasa — geser kanan pada bilangan bulat non-negatif persis sama dengan pembagian floor bilangan bulat dengan pangkat 2, tetapi perilakunya berbeda untuk bilangan negatif tergantung apakah geser aritmetika atau logis yang digunakan.

Pertanyaan yang sering diajukan

Apa perbedaan antara AND bitwise dan AND logis?

AND bitwise (&) membandingkan dua bilangan bit demi bit dan mengembalikan bilangan baru di mana setiap bit bernilai 1 hanya jika kedua bit input yang bersesuaian bernilai 1 — misalnya, 12 & 10 = 8. AND logis (&&) memperlakukan setiap nilai secara keseluruhan sebagai satu kondisi benar/salah tunggal dan mengembalikan salah satu operan asli atau boolean, mengevaluasi kebenaran (truthiness) bukan menggabungkan bit individual. Kedua operator ini memiliki tujuan berbeda dan umumnya menghasilkan hasil yang sangat berbeda.

Bagaimana cara kerja XOR?

XOR (exclusive or) membandingkan dua bilangan bit demi bit dan mengembalikan 1 pada setiap posisi di mana tepat satu dari kedua bit yang bersesuaian bernilai 1 (tidak keduanya, dan tidak pula tidak sama sekali). Untuk 12 (1100) XOR 10 (1010): membandingkan setiap posisi bit menghasilkan 0110, yaitu 6 dalam desimal. XOR umum digunakan untuk membalik bit, mendeteksi perbedaan antara dua nilai, dan dalam perhitungan checksum serta paritas sederhana.

Apa yang dilakukan geser kiri?

Geser kiri (A << B) memindahkan setiap bit dalam representasi biner A sejumlah B posisi ke kiri, mengisi posisi orde-rendah yang baru kosong dengan 0. Ini secara matematis setara dengan mengalikan A dengan 2 pangkat B. Misalnya, 12 << 2 = 48, hasil yang sama dengan 12 × 2² = 12 × 4 = 48.

Apa yang dilakukan NOT bitwise?

NOT bitwise (~A) membalik setiap bit A — setiap 0 menjadi 1 dan setiap 1 menjadi 0. Diterapkan pada representasi 32-bit dari 12 (00000000000000000000000000001100), NOT menghasilkan nilai dengan semua bit tersebut terbalik, yang sebagai bilangan 32-bit tak bertanda ditampilkan sebagai 4.294.967.283, dan sebagai bilangan bulat bertanda mewakili −13 dalam bentuk komplemen dua (mengikuti identitas ~A = −(A+1)).

Bagaimana geser kanan berbeda dari pembagian?

Untuk bilangan bulat non-negatif, geser kanan (A >> B) menghasilkan hasil yang persis sama dengan pembagian floor bilangan bulat dengan 2^B: A >> B = ⌊A ÷ 2^B⌋. Misalnya, 12 >> 2 = 3, sesuai dengan ⌊12 ÷ 4⌋ = 3. Kedua operasi ini dapat berbeda untuk bilangan negatif, di mana jenis geser tertentu (aritmetika vs. logis) memengaruhi cara bit tanda ditangani — detail yang relevan dalam konteks pemrograman tingkat rendah.

Mengapa operasi bitwise di sini dibatasi pada bilangan bulat 32-bit?

Operator bitwise bawaan JavaScript (&, |, ^, ~, <<, >>) secara internal mengonversi operannya menjadi bilangan bulat 32-bit sebelum melakukan operasi, sesuai spesifikasi bahasa ECMAScript. Kalkulator ini mencerminkan perilaku standar tersebut, sehingga input dibatasi pada rentang yang dapat direpresentasikan dalam 32-bit (0 hingga 2.147.483.647 untuk nilai non-negatif yang diterima di sini).

Referensi

  1. Warren HS Jr. Hacker's Delight. 2nd ed. Addison-Wesley, 2012. (Standard reference for bitwise algorithms and two's-complement arithmetic.)
  2. ECMA International. ECMA-262: ECMAScript Language Specification, §6.1.6.1 (Bitwise operators, ToInt32/ToUint32). ecma-international.org.
  3. Patterson DA, Hennessy JL. Computer Organization and Design: The Hardware/Software Interface. 5th ed. Morgan Kaufmann, 2013. (Binary representation and bitwise logic.)

Teori bilangan · Semua kalkulator

Kalkulator terkait