Python - Operator Bitwise

Halo di sana, ahli penyihir Python masa depan! Hari ini, kita akan memulakan perjalanan yang menarik ke atas dunia operator bitwise. Saya tahu apa yang mungkin anda fikirkan: "Operator bitwise? Ia terdengar seperti sesuatu yang hanya diambil perhatian oleh ahli sains komputer!" Tetapi percayalah, untuk memahami operator ini bisa sangat berguna dan bahkan menyenangkan! Jadi, mari kita kongsikan dan membongkar misteri bits dan bytes bersama-sama.

Python - Bitwise Operators

Operator Bitwise Python

Operator bitwise adalah operator khas yang bekerja pada representasi binari angka. Mereka memanipulasi bit individual, yang merupakan unit data terkecil dalam pengkomputering. Pandang bit sebagai suis kecil yang boleh menjadi baik dihidupkan (1) atau dimatikan (0).

Sebelum kita menyelidiki setiap operator, mari lihat secara cepat semua operator bitwise yang tersedia di Python:

Operator Nama Keterangan
& AND Mengatur setiap bit menjadi 1 jika kedua bit adalah 1
| OR Mengatur setiap bit menjadi 1 jika salah satu dari dua bit adalah 1
^ XOR Mengatur setiap bit menjadi 1 jika hanya salah satu dari dua bit adalah 1
~ NOT Mengembalikan semua bit
<< Shift Kiri Menggeser kiri dengan menekan angka nol dari kanan
>> Shift Kanan Menggeser kanan dengan menekan salinan bit paling kiri dari kiri

Sekarang, mari kita eksplor setiap operator ini secara terperinci.

Operator Bitwise AND Python (&)

Operator Bitwise AND (&) membandingkan setiap bit dari operan pertama dengan bit yang berkoresponden di operan kedua. Jika kedua bit adalah 1, bit hasil berkoresponden diatur menjadi 1. Jika tidak, bit hasil berkoresponden diatur menjadi 0.

Mari lihat contoh:

a = 5  # binari: 0101
b = 3  # binari: 0011
hasil = a & b
print(f"{a} & {b} = {hasil}")  # Output: 5 & 3 = 1

Dalam contoh ini, kita melakukan operasi bitwise AND antara 5 (0101 dalam binari) dan 3 (0011 dalam binari). Hasilnya adalah 1 (0001 dalam binari).

Berikut ini cara kerjanya:

0101 (5)
& 0011 (3)
----
0001 (1)

Seperti yang dapat dilihat, hanya bit paling kanan adalah 1 dalam kedua nomor, jadi hanya bit itu yang adalah 1 dalam hasil.

Operator Bitwise OR Python (|)

Operator Bitwise OR (|) membandingkan setiap bit dari operan pertama dengan bit yang berkoresponden di operan kedua. Jika salah satu bit adalah 1, bit hasil berkoresponden diatur menjadi 1. Jika tidak, bit hasil berkoresponden diatur menjadi 0.

Berikut adalah contoh:

a = 5  # binari: 0101
b = 3  # binari: 0011
hasil = a | b
print(f"{a} | {b} = {hasil}")  # Output: 5 | 3 = 7

Dalam kasus ini, kita melakukan operasi bitwise OR antara 5 dan 3. Hasilnya adalah 7 (0111 dalam binari).

Berikut adalah penguraian:

0101 (5)
| 0011 (3)
----
0111 (7)

Hasil memiliki 1 di mana saja salah satu dari nomor asli memiliki 1.

Operator Bitwise XOR Python (^)

Operator Bitwise XOR (eksklusif OR) (^) membandingkan setiap bit dari operan pertama dengan bit yang berkoresponden di operan kedua. Jika bit berbeda, bit hasil berkoresponden diatur menjadi 1. Jika bit sama, bit hasil berkoresponden diatur menjadi 0.

Mari lihat contoh:

a = 5  # binari: 0101
b = 3  # binari: 0011
hasil = a ^ b
print(f"{a} ^ {b} = {hasil}")  # Output: 5 ^ 3 = 6

Di sini, kita melakukan operasi bitwise XOR antara 5 dan 3. Hasilnya adalah 6 (0110 dalam binari).

Berikut cara kerjanya:

0101 (5)
^ 0011 (3)
----
0110 (6)

Hasil memiliki 1 di mana bit dalam nomor asli berbeda.

Operator Bitwise NOT Python (~)

Operator Bitwise NOT (~) adalah operator unari (hanya mengambil satu operan) yang mengalihkan bit operannya. Setiap 0 menjadi 1, dan setiap 1 menjadi 0.

Berikut adalah contoh:

a = 5  # binari: 0101
hasil = ~a
print(f"~{a} = {hasil}")  # Output: ~5 = -6

Anda mungkin bertanya-tanya kenapa hasilnya adalah -6. Ini karena Python menggunakan dua's complement untuk mewakili angka negatif. Dalam dua's complement, bit paling kiri mewakili tanda (0 untuk positif, 1 untuk negatif).

Berikut apa yang terjadi di bawah rakit:

00000101 (5)
~
11111010 (-6 dalam dua's complement)

Operator Bitwise Shift Kiri Python (<<)

Operator Bitwise Shift Kiri (<<) menggeser bit dari operan pertama ke kiri oleh jumlah tempat yang ditentukan oleh operan kedua. Bit baru di sebelah kanan diisi dengan angka nol.

Mari lihat contoh:

a = 5  # binari: 0101
b = 1
hasil = a << b
print(f"{a} << {b} = {hasil}")  # Output: 5 << 1 = 10

Dalam kasus ini, kita menggeser bit 5 ke kiri oleh 1 posisi. Hasilnya adalah 10 (1010 dalam binari).

Berikut apa yang terjadi:

0101 (5)
Shift kiri oleh 1
1010 (10)

Setiap shift kiri secara efektif menggandakan angka dengan 2.

Operator Bitwise Shift Kanan Python (>>)

Operator Bitwise Shift Kanan (>>) menggeser bit dari operan pertama ke kanan oleh jumlah tempat yang ditentukan oleh operan kedua. Untuk angka positif, bit baru di sebelah kiri diisi dengan angka nol.

Berikut adalah contoh:

a = 5  # binari: 0101
b = 1
hasil = a >> b
print(f"{a} >> {b} = {hasil}")  # Output: 5 >> 1 = 2

Di sini, kita menggeser bit 5 ke kanan oleh 1 posisi. Hasilnya adalah 2 (0010 dalam binari).

Berikut penguraian:

0101 (5)
Shift kanan oleh 1
0010 (2)

Setiap shift kanan secara efektif membagi angka dengan 2 (pembulatan ke bawah ke integer terdekat).

Dan itu tadi, folks! Kita telah melakukan perjalanan melalui wilayah operator bitwise di Python. Operator ini mungkin terdengar agak abstrak pada awalnya, tetapi mereka adalah alat yang sangat kuat, khususnya saat Anda bekerja dengan operasi tingkat rendah atau perlu mengoptimalkan kode Anda untuk performa.

Ingat, praktek membuat perfect. Cobalah untuk bermain dengan operator ini, eksperimen dengan nomor yang berbeda, dan lihat hasil yang Anda dapatkan. Sebelum Anda sadar, Anda akan memanipulasi bit seperti profesional!

Happy coding, dan mungkin bit tersebut selalu di atas pilihan Anda!

Credits: Image by storyset