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.

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

Common uses

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.

Artikel: Waktu/Angka

Waktu Unix: mengapa komputer menghitung waktu sejak 1970

Mengapa 1 Januari 1970 menjadi titik referensi waktu untuk sebagian besar sistem komputer.

Ekspresi cron: cara memecahkan jadwal tugas

Cara memecahkan ekspresi seperti */15 * * * * dan mengetahui persis kapan tugas akan berjalan.

Sistem bilangan: untuk apa biner, oktal, dan heksadesimal

Mengapa warna #FF5733 di CSS ditulis dengan digit heksadesimal, bukan desimal.

Selisih tanggal: mengapa menghitung hari lebih rumit dari kelihatannya

Mengapa mengurangi tanggal secara naif bisa memberi hasil salah karena tahun kabisat.

Menghitung usia: mengapa bukan sekadar pengurangan tahun

Mengapa mengurangi tahun lahir secara sederhana bisa memberi usia satu tahun lebih besar dari yang sebenarnya.

Zona waktu: mengapa UTC bukan hal yang sama dengan GMT

Mengapa UTC tidak pernah berubah dua kali setahun, sementara waktu London (GMT/BST) berubah.

Kalkulator durasi: cara menjumlahkan jam, menit, dan detik dengan benar

Mengapa saat menjumlahkan menit dan detik perlu "menyimpan" sisa ke posisi berikutnya, sama seperti penjumlahan desimal.

ISO 8601 Duration: cara menulis durasi dalam format standar

Mengapa PT1H30M berarti "1 jam 30 menit", bukan "1 menit 30 jam".

Nomor minggu: mengapa negara berbeda menghitung minggu secara berbeda

Mengapa 1 Januari kadang termasuk minggu ke-52 atau ke-53 tahun sebelumnya menurut standar ISO 8601.

Angka Romawi: bagaimana sistem tanpa nol dan nilai tempat bekerja

Mengapa IV berarti 4, bukan 6, dan bagaimana aturan pengurangan bekerja dalam angka Romawi.

IEEE 754: mengapa 0.1 + 0.2 tidak sama dengan 0.3 dalam kode

Mengapa hampir semua bahasa pemrograman menampilkan 0.1 + 0.2 sebagai 0.30000000000000004.

Angka menjadi kata: mengapa perlu mengubah digit menjadi kata

Mengapa dokumen bank menulis jumlah uang baik dalam angka maupun kata sekaligus.