Menu
CoddyTech

Operator geser ke kanan dan kiri

Pelajaran 7 dari 17 dalam kursus Manipulasi Bit di Coddy.

Operator shift digunakan untuk menggeser bit ke kiri atau ke kanan. 

Operator geser kanan ( >> )

Operator ini menggunakan dua operand. Nilai pertama adalah angka yang bitnya ingin kita geser ke kanan, dan operand kedua menunjukkan berapa banyak posisi yang ingin kita geser. Pada dasarnya, kita mendorong angka nol dari sisi MSB ke dalam angka biner.

Geser kanan ditulis sebagai '>>' . 

Geser kanan setara dengan membagi angka dengan pangkat dua. Mari pahami dengan ilustrasi.

Kita menggunakan (11)10 dan menggesernya ke kanan sebanyak 3 kali, sehingga menghasilkan (1)10 sebagai output. Kita juga dapat menghitungnya dengan mengambil nilai floor dari (11 / 23), yang sama dengan (1)10.  

Penggunaan:

int a = 11;
a>>3;
OUTPUT: 1

Di sini, a adalah angka yang bitnya harus digeser, dan 3 adalah jumlah posisi untuk menggeser angka tersebut ke kanan.

Operator geser kiri ( << )

Operator ini juga menggunakan dua operand. Operand pertama adalah angka yang bitnya ingin kita geser ke kiri, dan operand kedua menunjukkan berapa banyak posisi yang ingin kita geser. Pada dasarnya, kita mendorong angka nol dari sisi LSB. Geser kiri ditulis sebagai '<<' . Geser kiri setara dengan mengalikan angka dengan pangkat dua. Mari pahami dengan contoh yang sama.

Kita menggunakan (11)10 dan menggesernya ke kanan sebanyak 3 kali, sehingga menghasilkan (88)10 sebagai output. Kita juga dapat menghitungnya dengan mengalikan (11)10 dengan 23, yang hasilnya adalah (88)10. Perhatikan bahwa dalam kasus ini, kita tidak dapat menghapus MSB. Geser kiri akan menambah bit dan mendorong angka nol dari sisi LSB, tetapi tidak akan menghapus bit MSB. Sementara itu, pada geser kanan, kita mendorong angka nol dari sisi MSB dan bit di sebelah kiri akan dihilangkan.

Penggunaan:

int a = 11;
a<<3;
OUTPUT: 88
challenge icon

Tantangan

Mudah

Kalikan angka yang diberikan (input) dengan 2 menggunakan operator shift.

Coba sendiri

#include <iostream>
#include <vector>
using namespace std;

int Double(int num) {
    // Tulis kodemu di sini
}

Semua pelajaran di Manipulasi Bit

Latihan sendiri: Compiler C++ online

Periksa konversi: Konverter Basis Bilangan