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 :
- >> (Geser ke kanan)
- << (Geser ke kiri)
- ~ (NOT)
- & (Logika AND)
- | (Logika OR)
- ^ (Logika XOR)
Pada part ketiga mengenai operasi bitwise, akan saya bahas untuk operasi bitwise AND OR dan XOR, langsung saja kita lihat script berikut
/*
* Bitwise_AND_OR_XOR.cpp
*
* Created: 07/01/2016 17:18:54
* 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=0x00; // Menjadikan PORTD sebagai input
PORTD=0xff; // Menjadikan PORTD sebagai input pull up aktif
unsigned char a, b; // Membuat Variabel global a
a=0b00001111; // a bernilai 00001111
b=0b10110111; // b bernilai 10110111
while(1)
{
PORTA=a&b; // PORTA bernilai a&b
PORTB=a|b; // PORTA bernilai a|b
PORTC=a^b; // PORTA bernilai a^b
}
}
Hasil dari operasi tersebut jika kita hitung manual akan menjadi seperti tabel berikut
Hasil Operasi Bitwise AND OR dan XOR Bahasa C
Dan kita buktikan dengan simulasi diproteus sebagai berikut
Contoh Operasi Bitwise AND OR dan XOR Bahasa C
Karna hasil dari operasi pun sudah saya sertakan, maka sudah tidak perlu saya jelaskan lagi cara kerja dari script diatas :)
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.
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!