Operator Bitwise dalam Pemrograman C & C++

Diterbitkan: 2022-12-09

Dalam RAM, data diatur sebagai urutan byte. Setiap byte berisi delapan bit berurutan. Operator bitwise C & C++ sangat membantu saat Anda ingin melakukan beberapa operasi aritmatika pada bit data. Mereka lebih cepat dan terkadang digunakan untuk meningkatkan efisiensi program. Mereka bekerja pada Algoritma Bitwise yang melakukan operasi pada tingkat bit atau memanipulasi bit dengan berbagai cara.

Jenis-jenis Operator Bitwise di C & C++:

  1. Sedikit demi sedikit DAN
  2. Sedikit demi sedikit ATAU
  3. Bitwise TIDAK
  4. Bitwise Eksklusif-Atau (XOR)
  5. Operator shift kiri
  6. Operator Shift Kanan

Mari masuk ke detail masing-masing:

Daftar isi

1. Searah bit DAN:

Bitwise AND operator di C atau C++ menggunakan satu ampersand (&). Dibutuhkan dua angka sebagai operan dan melakukan AND pada semua bitnya. Hasilnya adalah 1 hanya jika kedua bitnya adalah 1. Jika salah satu bitnya adalah 0, hasilnya adalah 0. Intinya, operator biner di C & C++ ini mengambil logika AND dari bit di setiap posisi dari dua angka yang diberikan di bentuk biner.

Contoh:

Misalkan representasi biner dari dua angka a & b adalah:

a = 01011000

b = 10111001

Jadi, a & b = 00011000

Seperti yang terlihat dari contoh di atas, hasilnya menunjukkan '1' hanya di tempat-tempat di mana angka a dan b memiliki 1. Untuk semua tempat lainnya, hasilnya menunjukkan '0'.

2. Sedikit demi sedikit ATAU:

Di C & C++, Bitwise OR bekerja sangat mirip dengan bitwise AND. Satu-satunya perbedaan adalah bahwa dalam operator OR bitwise, untuk posisi bit menjadi '1' dalam hasil, hanya satu dari dua bit yang harus '1'. Operator ini mengambil dua angka sebagai operan dan melakukan OR pada setiap bit dari dua angka.

Ini bekerja dengan cara berikut:

  • Jika kedua bit adalah '1', hasilnya adalah '1'.
  • Jika kedua bit adalah '0', hasilnya adalah '0'.
  • Jika salah satu bit adalah '1', hasilnya adalah '1'.

Ini adalah salah satu operator bitwise C++ yang paling sederhana dan paling sering digunakan. Simbolnya adalah pipa |. Selain itu, ini identik dengan operator logika Boolean ||.

Contoh:

Misalkan representasi biner dari dua angka a| b adalah:

a = 01101001

b = 10111000

Jadi, a| b = 11111001

3. Bitwise TIDAK:

Juga dikenal sebagai operator Bitwise NOT, ini membalik setiap bit pada hasilnya. Simbolnya adalah tilde (~). Cara mudah untuk mengingat cara kerja operator ini adalah bahwa tilde kadang-kadang dikenal sebagai twiddle, dan pelengkap bitwise twiddle setiap bit. Artinya jika Anda memiliki 1, hasilnya adalah 0, dan sebaliknya. Dengan kata lain, operator bitwise di C & C++ ini mengambil satu angka dan membalikkan semua bit.

Saat menentukan nilai terbesar yang mungkin untuk nomor yang tidak ditandatangani, ini adalah salah satu operator bitwise C++ yang paling berguna .

Contoh:

unsigned int num = ~0;

Di sini, 0 berarti semua 0s: 00000000. Jadi, menerapkan operator Bitwise NOT memberikan hasil sebagai 1s: 11111111. Karena num adalah unsigned int, Anda tidak perlu khawatir tentang bit tanda atau komplemen dua. 1s adalah angka terbesar yang mungkin dalam hasil.

Salah satu karakteristik penting dari operator Bitwise NOT adalah Pelengkap 2. Komplemen 2 dari suatu bilangan sama dengan komplemen bilangan itu ditambah 1.

Contoh:

a = 00000000

Jadi, komplemen 2-nya = -(11111111+1) = -00000000 = -0(desimal)

Catatan: Komplemen bitwise dari sembarang angka N sama dengan -(N+1).

Pelajari Kursus Pengembangan Perangkat Lunak online dari Universitas top Dunia. Dapatkan Program PG Eksekutif, Program Sertifikat Lanjutan, atau Program Magister untuk mempercepat karier Anda.

4. Bitwise Exclusive-OR (XOR):

Operasi Exclusive-OR menerima dua input dan menghasilkan 1 jika salah satu atau input lainnya adalah 1. Tetapi hasilnya adalah 0 jika keduanya 1. Jika kedua input 0 atau keduanya 1, hasilnya adalah 0. Hasilnya dari XOR adalah 1 hanya jika dua bit berbeda. Simbol operator biner ini di C & C++ adalah tanda sisipan (^). Selain itu, operator bitwise dalam C & C++ ini disingkat XOR. Itu melakukan operasi eksklusif-ATAU pada setiap pasangan bit. Penting untuk dicatat bahwa tidak ada mitra operator Boolean untuk operator ini.

Contoh:

Misalkan kita memiliki dua angka as

a = 10101010

b = 01110010

Sekarang a ^ b = 10101010 ^ 01110010 = 11011000

Anda dapat memahami XOR dengan cara berikut. Misalkan Anda memiliki bit, baik 0 atau 1, yang Anda panggil A. Sekarang ketika Anda mengambil A XOR 0, Anda akan mendapatkan A kembali. Jadi, jika A adalah 1, Anda mendapatkan 1, dan sebaliknya. Ketika Anda mengambil A XOR 1, itu berarti Anda membalik A. Jadi, jika A adalah 1, Anda mendapatkan 0 dan sebaliknya.

Jika Anda menerapkan operasi XOR bitwise dua kali, yaitu Anda memiliki dua bit, A dan B, dan Anda menetapkan C = A XOR B, kemudian melakukan C XOR B. Dalam hal ini, hasil yang Anda dapatkan adalah A XOR B XOR C. Itu membalik setiap bit A dua kali atau tidak membalik sedikit pun. Karenanya, Anda cukup mendapatkan kembali nilai A apa adanya.

Anda dapat mempertimbangkan operasi XOR biner sebagai semacam permainan selektif. Jika Anda mengimplementasikan XOR pada dua angka, salah satunya adalah angka 1, hasilnya setara dengan twiddle.

5. Operator shift kiri:

Operator bitwise ini menggeser semua bit ke kiri dengan jumlah tertentu dari bit yang ditentukan. Posisi bit yang dikosongkan oleh operator shift kiri diisi dengan 0. Simbolnya adalah <<.

Dalam C atau C++, ini bekerja sedemikian rupa sehingga pertama kali mengambil dua angka, menggeser bit operan pertama ke kiri, dan operan kedua menunjukkan berapa banyak tempat untuk menggeser angka tersebut.

Sintaksis:

a<<= 5

Berikut adalah contoh program C/C++ untuk mengimplementasikan operator shift kiri:

int utama()

{

int a = 5;

a<<= 2;

hitung << “x : ” << x << endl;

}

Keluaran: a = 20

Kursus & Artikel Populer tentang Rekayasa Perangkat Lunak

Program Populer
Program PG Eksekutif dalam Pengembangan Perangkat Lunak - IIIT B Program Sertifikat Blockchain - PURDUE Program Sertifikat Keamanan Siber - PURDUE MSC dalam Ilmu Komputer - IIIT B
Artikel Populer Lainnya
Gaji Insinyur Cloud di AS 2021-22 Gaji Arsitek Solusi AWS di AS Gaji Pengembang Backend di AS Gaji Pengembang Front End di AS
Gaji pengembang web di AS Pertanyaan Wawancara Scrum Master di tahun 2022 Bagaimana Memulai Karir di Keamanan Cyber ​​​​pada tahun 2022? Pilihan Karir di AS untuk Mahasiswa Teknik

6. Operator shift kanan:

Operator bitwise ini menggeser semua bit ke kanan dengan jumlah tertentu dari bit yang ditentukan. Simbolnya adalah >>. Dalam C atau C++, operator ini pertama-tama mengambil dua angka, menggeser kanan bit operan pertama, dan operan kedua menentukan jumlah pergeseran pada angka tersebut.

Sintaksis:

a>>= 5

Contoh program C/C++ untuk mengimplementasikan operator shift kanan:

int utama() {

int a = 5;

a>> = 2;

hitung << “x : ” << x << endl;

}

Keluaran: a = 1

Kursus & Artikel Populer tentang Rekayasa Perangkat Lunak

Program Populer
Program PG Eksekutif dalam Pengembangan Perangkat Lunak - IIIT B Program Sertifikat Blockchain - PURDUE Program Sertifikat Keamanan Siber - PURDUE MSC dalam Ilmu Komputer - IIIT B
Artikel Populer Lainnya
Gaji Insinyur Cloud di AS 2021-22 Gaji Arsitek Solusi AWS di AS Gaji Pengembang Backend di AS Gaji Pengembang Front End di AS
Gaji pengembang web di AS Pertanyaan Wawancara Scrum Master di tahun 2022 Bagaimana Memulai Karir di Keamanan Cyber ​​​​pada tahun 2022? Pilihan Karir di AS untuk Mahasiswa Teknik

Kapan sebaiknya Anda menggunakan operator bitwise di C & C++?

  • Menghemat ruang:

Operator bitwise membantu menghemat ruang. Salah satu masalah umum yang dihadapi saat bekerja pada tingkat bit individual adalah jika Anda menginginkan lebih banyak ruang atau untuk menghemat waktu, Anda mungkin harus mendesain ulang sebagian besar program Anda. Tetapi menggunakan operator bitwise di C & C++ dapat menghilangkan ketergantungan; misalnya, Anda dapat menggunakan ~0 untuk mendapatkan bilangan bulat terbesar. Pergeseran bit untuk mengalikan dengan dua adalah operasi tipikal. Oleh karena itu, ini tidak memengaruhi keterbacaan, tidak seperti penggunaan lanjutan manipulasi bit yang dapat memengaruhi dalam beberapa kasus.

  • Enkripsi:

Jika Anda sedang mengerjakan beberapa jenis enkripsi atau pada sistem yang membutuhkan bidang bit untuk digunakan menyimpan atribut Boolean.

Fakta unik tentang operator bitwise

  • Bitwise OR dari dua angka hanyalah jumlah dari angka-angka tersebut jika tidak ada carry yang terlibat. Jika tidak, Anda hanya perlu menambahkan bitwise AND. Misalnya, x = 5(101) dan y = 2(010). Karena tidak ada carry yang terlibat, jumlahnya hanya x|y. Tapi, jika sekarang kita mengubah 'x' menjadi 6 (110), jumlahnya akan berubah menjadi x|y + x&y karena sekarang melibatkan carry.
  • Operator XOR bitwise adalah yang paling berharga dari sudut pandang wawancara teknis. Contoh salah satu masalah wawancara yang terkait dengan ini dibahas di sini. “Untuk himpunan bilangan tertentu yang terdiri dari semua unsur yang terjadi berkali-kali dengan bilangan genap kecuali satu bilangan, carilah bilangan ganjil yang terjadi.” Anda perlu melakukan XOR ke semua nomor untuk mengatasi masalah ini.
  • Operator bitwise shift kanan dan kiri tidak boleh digunakan untuk bilangan negatif. Operan kedua, yang menentukan jumlah shift, berisi angka negatif, yang menyebabkan perilaku tidak terdefinisi dalam C & C++. Misalnya, hasil dari 1 >>- 1 dan 1 << -1 tidak terdefinisi.
  • Perilaku tidak ditentukan jika pergeseran angka melebihi kapasitas bilangan bulat. Misalnya, 1 << 65 tidak ditentukan jika bilangan bulat disimpan dalam format 64 bit.
  • Tidak ada operasi shift yang terjadi jika operand kedua (yang menentukan jumlah shift) adalah 0.

Mulailah Perjalanan Ilmu Komputer Anda Dengan UpGrad:

Jika Anda bertujuan untuk mempelajari secara detail tentang pengembangan frontend (JavaScript, HTML, CSS), backend (NoSQL-MongoDB), dan layanan mikro, maka Anda dapat mengikuti kursus Magister Sains UpGrad dalam Ilmu Komputer . Disampaikan oleh IIIT Bangalore & Status Alumni LJMU, kursus ini membantu Anda mendapatkan karir Anda sebagai insinyur perangkat lunak / pengembang full-stack dengan raksasa teknologi di seluruh dunia.

Kursus ini mencakup akses gratis ke Career Transition Bootcamp untuk pembuat kode pemula dan non-teknologi. Anda akan mempelajari lebih dari sepuluh bahasa & alat pemrograman dalam kursus ini, mempersiapkan Anda secara menyeluruh untuk mengambil alih peran kompleks dalam industri ini.

Apa gunanya operator bitwise di C++?

Di C++, operator bitwise melakukan operasi pada data integer di tingkat biner. Mereka beroperasi pada pola bit yang melibatkan manipulasi bit individual. Oleh karena itu, operasi bitwise juga dikenal sebagai pemrograman tingkat bit. Operator bitwise di C++ terutama digunakan untuk perhitungan yang lebih cepat karena hanya bekerja pada dua digit, yaitu 0 dan 1. Operator ini juga dapat melakukan pengujian dan menggeser bit yang sebenarnya.

Bisakah Anda menggunakan operator shift kiri dan kanan secara bersamaan dalam sebuah kode?

Ya, Anda dapat menggabungkan operator shift kiri dan shift kanan, dan setelah itu, Anda dapat mengekstrak data dari ekspresi bilangan bulat.

Apakah operator pelengkap membalik seluruh urutan kode?

Tidak, tidak. Ini membalik 1s dan 0s. Jadi, semua 1 menjadi 0 dan sebaliknya.

Mengapa nama lain dari operator pelengkap Bitwise adalah operator pelengkap seseorang?

Alasannya selalu hanya membutuhkan satu operan atau nilai. Ini adalah operator unary. Saat Anda melakukan komplemen pada bit apa pun, semua 0 menjadi 1 dan sebaliknya. Misalnya, jika Anda memiliki ekspresi bilangan bulat dengan nilai 1111 0000. Setelah melakukan operasi komplemen bitwise, nilainya menjadi 0000 1111.