Kali ini, saya akan bahas dasar bahasa pemrograman C dengan topik operasi bitwise. Dimana operasi bitwise adalah operasi yang berfungsi untuk memanipulasi bit yang ada. Didalam bahasa C, terdapat 6 jenis operasi bitwise, yaitu :
  1.  >> (Geser ke kanan)
  2. << (Geser ke kiri)
  3. ~ (NOT)
  4. & (Logika AND)
  5. | (Logika OR)
  6. ^ (Logika XOR) 
Sebagai refrensi saya sertakan gambar tabel kebenaran dari keenam operasi diatas


Pada part kedua mengenai operasi bitwise, akan saya bahas untuk operasi bitwise not, langsung saja kita lihat script berikut

 /*
 * Bitwise_NOT.cpp
 *
 * Created: 07/01/2016 17:14:35
 *  Author: Diaz
 */


#include <avr/io.h>

int main(void)
{
    DDRA=0xff;            // Menjadikan PORTA sebagai output
    PORTA=0xff;            // Menjadikan PORTA sebagai output dengan default berlogika 1
  
    DDRB=0xff;            // Menjadikan PORTB sebagai output
    PORTB=0xff;            // Menjadikan PORTB sebagai output dengan default berlogika 1
  
    DDRC=0xff;            // Menjadikan PORTC sebagai output
    PORTC=0xff;            // Menjadikan PORTC sebagai output dengan default berlogika 1

    DDRD=0xff;            // Menjadikan PORTD sebagai output
    PORTD=0xff;            // Menjadikan PORTD sebagai output dengan default berlogika 1
  
    unsigned char a;    // Membuat Variabel global a
    a=0b00001111;        // a bernilai 00001111
  
    while(1)
    {
        PORTA=a;
        PORTB=~a;
    }
}

Dari script diatas akan membentuk gambar seperti berikut

Contoh Operasi Bitwise Kiri dan Kanan Bahasa C
Contoh Operasi Bitwise NOT Bahasa C

Untuk operasi Not ini sangat mudah, karna output dari NOT hanyalah kebalikan dari input. Dari script diatas saya buat PORTA dan B sesuai variabel a yaitu 00001111. Namun untuk PORTB saya beri tanda ~ (Not) sehingga hasilnya akan menjadi kebalikan dari PORTA.

Sama seperti contoh sebelumnya, setiap pembuktian perintah menggunakan 1 PORT (8bit) sebagai pembuktiannya, dan script tersebut saya buat menggunakan Atmel Studio 6 + AVRGCC dan Proteus

Saya sarankan untuk menulis ulang semua script tersebut secara manual, agar kalian lebih cepat menghafal dan memahami script tersebut. Namun jika mendapat kesulitan, saya sediakan file script beserta file proteusnya yang dapat didownload di sini

Sayapun disini masih belajar sehingga belum tentu benar mengenai semua yang  saya jabarkan diatas, jika ada yang merasa janggal atau merasa ada kesalahan dalam penjabaran saya, bisa kita diskusikan dikomentar.

Good Luck!

Related Post :