Waktu/Angka
Operasi Bitwise
AND/OR/XOR/NAND/NOR/XNOR/NOT dan pergeseran pada bilangan bulat dengan lebar tertentu (8/16/32/64 bit) dalam sistem bilangan apa pun.
(jumlah bit pergeseran, angka desimal)
Bitwise operations work directly on a number's individual bits rather than its value as a whole — the basis for permission flags, network protocols, and low-level optimization.
How to use it
- Enter one or two numbers in any base (binary, hex, decimal) and pick an operation (AND, OR, XOR, NAND, NOR, XNOR, NOT, or a shift).
- Pick a bit width (8/16/32/64 bits) — it affects how NOT and shifts behave at the number's boundaries.
- The result is shown instantly in several number bases for easy comparison.
Common uses
- Working with permission or setting flags packed into a single number (file system access rights, for example).
- Debugging a network protocol or binary format where fields are packed at the individual-bit level.
- A teaching example for understanding binary number representation and operations on it.
Things to keep in mind
The result of NOT and shifts depends on the chosen bit width — the same number gives a different result at 8-bit versus 32-bit width because of the different number of bits involved.
XOR is often used to toggle a flag — applying XOR twice with the same value returns the original.
Artikel tentang alat ini: Operasi bitwise: cara kerja AND, OR, dan XOR di level bit
Pertanyaan yang sering diajukan
Apa perbedaan antara AND, OR, XOR, NAND, NOR, XNOR, dan NOT?
AND memberikan 1 hanya jika kedua bit adalah 1, OR memberikan 1 jika setidaknya satu adalah 1, dan XOR memberikan 1 jika bit berbeda. NAND/NOR/XNOR adalah negasinya, dan NOT membalik setiap bit dari satu operan.
Bagaimana lebar bit dan tanda angka ditangani?
Pilih lebar 8/16/32/64 bit — operasi dan pergeseran terjadi dalam rentang itu. Angka negatif direpresentasikan dalam komplemen dua, jadi hasil NOT atau pergeseran bisa terlihat tidak terduga jika Anda terbiasa dengan notasi desimal.
Apa perbedaan antara pergeseran kiri dan pergeseran kanan?
Pergeseran kiri (<<) menambahkan nol di kanan, secara efektif mengalikan dengan 2 pangkat jumlah pergeseran. Pergeseran kanan bisa logis (menambahkan nol di kiri) atau aritmetika (mempertahankan bit tanda) — jenisnya tergantung pada mode yang dipilih.
Mengapa ekspresi seperti "if (a & b == c)" sering tidak bekerja seperti yang diharapkan?
Di kebanyakan bahasa, operator perbandingan == punya prioritas lebih tinggi daripada operator bitwise &, jadi ekspresi tersebut dievaluasi sebagai "a & (b == c)", bukan seperti yang biasanya dimaksudkan penulis. Untuk menghindari jebakan ini, selalu bungkus operasi bitwise dalam tanda kurung eksplisit.
Mengapa menggunakan flag bitwise daripada variabel boolean terpisah?
Sekumpulan flag yang dipadatkan dalam satu angka disimpan dan dikirim lebih ringkas (misalnya dalam protokol jaringan atau format file), dan memeriksa atau mengubah flag tertentu dengan AND/OR/XOR adalah satu operasi cepat.