Artikel Terbaru

8 Pertimbangan yang Harus Dilakukan untuk Memilih Wallet Bitcoin

Wallet Bitcoin adalah program yang digunakan untuk mengirim dan menerima data transaksi Bitcoin, menyimpan catatan Bitcoin, dan memantau saldo Bitcoin. Sama seperti ketika seseorang memerlukan program email yang digunakan untuk mengelola data email -nya, pada Bitcoin juga terdapat program sejenis yang dapat digunakan untuk mengelola data Bitcoin tersebut, berupa wallet interface pada setiap node blockchain Bitcoin. Wallet digunakan untuk memantau alamat Bitcoin pada blockchain dan juga dapat digunakan untuk memperbarui saldo Bitcoin pada setiap transaksi.

6 Jenis Utama Operator Bitwise pada Bahasa C, Beserta 3 Fakta Menariknya

Dalam bahasa C, semua operator yang terdapat dalam bahasa pemrograman tersebut adalah termasuk operator bitwise yang bekerja pada level satuan bit, berikut penjelasannya:

  • satu, Operator bitwise AND '&' pada bahasa C dan C++ akan mengambil dua jenis angka sebagai operand dan menerapkan logika AND pada setiap bit dari dua angka. Hasil dari operator AND adalah 1 hanya jika kedua bit adalah bernilai 1.
  • dua, Operator bitwise OR '|' pada bahasa C dan C++ akan mengambil dua jenis angka sebagai operand dan menerapkan logika OR pada setiap bit dari dua angka. Hasil dari operator OR adalah 1 jika salah satu dari dua bit adalah 1.
  • tiga, Operator bitwise XOR (exlusive or) '^' pada bahasa C dan C++ akan mengambil dua jenis angka sebagai operand dan menerapkan logika XOR pada setiap bit dari dua angka. Hasil dari operator XOR adalah 1 jika dua bit bernilai beda.
  • empat, Operator bitwise left shift '<<' pada bahasa C dan C++ akan mengambil dua jenis angka dan geser kiri dari operand pertama, dan operand kedua memutuskan angka mana dari lokasi yang akan digeser.
  • lima, Operator bitwise right shift '>>' pada bahasa C dan C++ akan mengambil dua jenis angka dan geser kanan dari operand pertama, dan operand kedua memutuskan angka mana dari lokasi yang akan digeser.
  • enam, Operator bitwise NOT '~' pada bahasa C dan C++ akan mengambil satu angka dan membalikkan nilai bit dari semua angka tersebut.

Contoh:

// Program bahasa C untuk

// mendemonstrasikan kegunaan

// dari operator bitwise

#include <stdio.h>

 

int main()

{

// a = 5(00000101) 

// b = 9(00001001)

unsigned char a = 5, b = 9;

 

// Hasilnya adalah 00000001

printf("a = %d, b = %d\n", a, b);

printf("a&b = %d\n", a & b);

 

// Hasilnya adalah 00001101

printf("a|b = %d\n", a | b);

 

// Hasilnya adalah 00001100

printf("a^b = %d\n", a ^ b);

 

// Hasilnya adalah 11111010

printf("~a = %d\n", a = ~a);

 

// Hasilnya adalah 00010010

printf("b<<1 = %d\n", b << 1);

 

// Hasilnya adalah 00000100

printf("b>>1 = %d\n", b >> 1);

 

return 0;

}

Output:
a = 5, b = 9
a&b = 1
a|b = 13
a^b = 12
~a = 250
b<<1 = 18
b>>1 = 4

Fakta Menarik tentang Operator Bitwise
satu, Operator left shift dan right shift tidak bisa digunakan untuk nilai negatif. Jika setiap operand bernilai negatif, maka hasilnya adalah tidak terdefinisi. Contoh hasil dari ketua persamaan berikut -1<<1 dan 1<<-1 adalah tidak terdefinisi. Juga, jika angka bergeser lebih dari ukuran integer, maka behavior-nya adalah tidak terdefinisi. Contoh, 1 << 33 adalah tidak terdefinisi jika integer disimpan menggunakan 32bit.

dua, Operator bitwise XOR adalah operator yang paling berguna dari sudut pandang technical interview. Karena operator ini digunakan pada banyak permasalahan. Contoh sederhana "diberikan satu set angka di mana semua elemen terjadi beberapa kali, kecuali satu angka, temukan angka ganjil yang muncul dalam kejadian", permasalah tersebut akan lebih efisien penyelesaiannya jika menggunakan operator XOR untuk semua angka.

#include <stdio.h>

 

// Berfungsi untuk

// mengembalikan satu-satunya

// elemen yang muncul ganjil

int findOdd(int arr[], int n)

{

int res = 0;

int i;

for (i = 0; i < n; i++)

res ^= arr[i];

 

return res;

}

 

// Driver Method

int main(void)

{

int arr[] = { 12, 12, 14, 90, 14, 14, 14 };

int n = sizeof(arr) / sizeof(arr[0]);

printf("The odd occurring"

" element is %d ",

findOdd(arr, n));

return 0;

}

Output:
The odd occurring element is 90

Contoh lain untuk jenis permasalah yang bisa diselesaikan dengan lebih efisien jika menggunakan operator XOR.
  • Menemukan angka hilang dari deret.
  • Penukaran dua angka tanpa menggunakan variabel sementara.
  • Efisiensi memori dengan Double Linked List.
  • Menemukan dua elemen tidak berurutan.
  • Menemukan dua angka dengan kejadian ganjil dalam unsorted-array.
  • Penambahan dua angka tanpa menggunakan operator aritmatika.
  • Menukar bit dari angka yang diberikan.
  • Menghitung angka dari bit yang akan dibalik untuk konversi a ke b.
  • Menemukan elemen yang hanya muncul sekali.
  • Mendeteksi jika dua integer memiliki tanda berlawanan.

tiga, Operator bitwise tidak seharusnya digunakan pada lokasi dari operator logika. Hasil dari operator logika adalah 0 atau 1 (true atau false), tetapi operator bitwise mengembalikan nilai integer. Juga, operator logika mempertimbangkan operand non-zero apapun seperti 1. Contoh, perhatikan program berikut ini, hasil dari & dan && adalah berbeda meskipun pada operand yang sama.

#include <stdio.h>

 

int main()

{

int x = 2, y = 5;

(x & y) ? printf("True ") : printf("False ");

(x && y) ? printf("True ") : printf("False ");

 

return 0;

}

Output:
False True

empat, Operator left-shift dan right-shift adalah senilai untuk perkalian dan pembagian oleh 2 secara berurutan. Seperti yang dijelaskan pada point satu, hanya dapat bekerja jika angka bernilai positif.

#include <stdio.h>

 

int main()

{

int x = 19;

printf("x << 1 = %d\n", x << 1);

printf("x >> 1 = %d\n", x >> 1);

 

return 0;

}

Output:
x << 1 = 38
x >> 1 = 9

lima, Operator & dapat digunakan untuk pemeriksaan cepat jika angka bernilai ganjil atau genap.
Nilai dari ekspresi (x & 1) hanya dapat bernilai non-zero jika x adalah angka ganjil, jika tidak maka nilai akan bernilai 0.

#include <stdio.h>

 

int main()

{

int x = 19;

(x & 1) ? printf("ganjil") : printf("genap");

 

return 0;

}

Output:
ganjil

enam, Operator ~ harus digunakan secara hati-hati. Hasil dari operator ~ pada nilai angka kecil dapat berupa angka besar jika hasilnya disimpan dalam variabel unsigned. Dan hasilnya juga dapat berupa angka negatif jika disimpan dalam variabel signed (diasumsikan angka negatif disimpan pada 2 komplemen dimana bit paling kiri adalan sign bit).

// Perhatikan bahwa keluaran

// dari program berikut ini

// bergantung pada kompilator

// yang digunakan

#include <stdio.h>

 

int main()

{

unsigned int x = 1;

printf("Hasil dari Signed"

" adalah %d \n", ~x);

printf("Hasil dari Unsigned"

" adalah %u \n", ~x);

 

return 0;

}

Output:
Hasil dari Signed adalah -2
Hasil dari Unsigned adalah 4294967294d

Komentar

  1. Apa yang dimaksud dengan operator bitwise dalam bahasa C?

    BalasHapus
    Balasan
    1. Operator bitwise adalah sekumpulan operator khusus yang disediakan oleh bahasa C, operator tersebut digunakan oleh bahasa C dalam pemrograman tingkat satuan bit. Operator bitwise digunakan untuk memanipulasi nilai bit dari ekspresi integer.

      Hapus
  2. Operator bitwise digunakan untuk mengubah nilai bit satuan dalam sebuah operan. Satu byte memori komputer jika dilihat sebagai satuan yang lebih kecil adalah terdiri dari 8 bit, dari satu 8 bit tersebut kemudian dapat digunakan sebagai penanda status benar dan salah dari 8 tanda berbeda, karena setiap bit dapat digunakan sebagai nilai boolean yang dapat menampung salah satu dari dua kemungkinan nilai (TRUE atau FALSE).

    BalasHapus
  3. Bagaimana operator logika AND dan OR bitwise bekerja pada bahasa C?

    BalasHapus
    Balasan
    1. Operator & (bitwise AND) pada bahasa C dan C++ bekerja dengan cara menggunakan dua angka sebagai nilai operan dan melakukan perhitungan dengan logika AND pada setiap bit dari dua nilai atau angka dari operan yang digunakan tersebut. Hasil dari logika AND adalah bernilai 1 atau TRUE jika kedua nilai bit tersebut adalah bernilai 1 atau TRUE.

      Sedangkan operator | (bitwise OR) pada bahasa C dan C++ bekerja dengan cara menggunakan dua nakg sebagai nilai operan dan melakukan perhitungan dengan logika OR jika SALAH SATU dari dua bit nilai operan tersebut bernilai 1 atau TRUE.

      Hapus

Posting Komentar

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung. :D

Catatan: setiap iklan yang ditayangkan pada blog ini bersumber dari google adsense. Dengan jenis iklan yang dipilih adalah, sebagai berikut.

POIN 1, Iklan yang ditampilkan hanya boleh berbahasa indonesia atau berbahasa inggris. Tidak menerima jenis iklan dalam bahasa yang lain selain yang telah disebutkan karena blog ini dibuat untuk para pengunjung dari negara atau orang yang berbahasa Indonesia.

POIN 2, Setiap gambar yang ditampilkan pada iklan sifatnya tidak mengganggu para pengunjung yang melihat blog, atau tidak boleh menampilkan gambar yang bersifat menjijikkan atau merangsang rasa mual.

POIN 3, Jenis iklan yang dipasang bukan merupakan iklan spam, atau berisi dan mengarahkan pengunjung ke alamat yang berbahaya atau bersifat penipuan.

POIN 4, Segala bentuk iklan tunduk dan patuh pada ketentuan dari pihak Adsense google dan pemilik blog.

POIN 5, Segala jenis iklan yang tidak bertentangan dengan poin 1-4 yang dijelaskan sebelumnya, maka iklan tersebut dapat ditampilkan pada blog.

POIN 6, Jika ada pihak ketika yang ingin memasang iklan pada blog ini secara langsung, maka dapat menghubungi pemilik blog melalui kontak 0882 3218 8316.



~ Ikatlah Ilmu dengan Memostingkannya ~

Hot Artikel

Perbedaan stdio.h dan stdlib.h pada Bahasa C

6 Tahap Utama dalam Melakukan Kompilasi Program Hello World Java

Perbedaan Antara int main() dan int main(void) pada Bahasa C

Enkapsulasi pada Java

3 Jenis Utama Looping pada Java