[C++] Contoh Penggunaan bit-field
[C++] Contoh Program Penggunaan bit-field |
Dengan menggunakan bit-field, suatu bit yang terdapat di dalam data yang berukuran satu byte atau dua byte dapat diakses dengan mudah.
Berikut ini contoh program C++ penggunaan
bit-field :
/*
N.N. Blog
Compiler : Microsoft Visual
Studio 2012
*/
#include <iostream>
using namespace std;
#include <conio.h>
//deklarasi bit field
struct bit_data
{
unsigned b0 : 1;
unsigned b1 : 1;
unsigned b2 : 1;
unsigned b3 : 1;
unsigned b4 : 1;
unsigned b5 : 1;
unsigned b6 : 1;
unsigned b7 : 1;
};
int main()
{
//deklarasi union
union ubyte
{
unsigned char byte;
bit_data
bit;
};
ubyte
ascii;
int nilai;
cout<<"Contoh Penggunaan Bit-field"<<endl;
cout<<"---------------------------"<<endl;
cout<<"Masukkan ascii antara 0 s/d 255 : ";
cin>>nilai;
ascii.byte = nilai;
cout<<"\n7 6 5 4 3 2 1 0 << Posisi bit"<<endl;
cout<<ascii.bit.b7<<" "<<ascii.bit.b6<<" "
<<ascii.bit.b5<<" "<<ascii.bit.b4<<" "
<<ascii.bit.b3<<" "<<ascii.bit.b2<<" "
<<ascii.bit.b1<<" "<<ascii.bit.b0<<" "<<endl;
_getche();
return EXIT_SUCCESS;
}
Output :
Contoh Penggunaan Bit-field
---------------------------
Masukkan ascii antara 0 s/d 255 : 14
7 6 5 4 3 2 1 0 << Posisi bit
0 0 0 0 1 1 1 0
Catatan kecil :
- Tipe yang digunakan pada anggota bit-field dapat berupa unsigned, signed, int.
- Pada pendeklarasian bit-field, tanda titik dua (:) menyatakan panjang dari suatu bitfield
- Suatu variabel yang didefinisikan sebagai bit-field tidak bisa langsung diberi nilai. Sehingga variabel bitfield dibentuk di dalam union. Pada contoh ini, struktur bit_data dan unsigned char menggunakan memori yang sama atau saling berbagi memori.
union ubyte
{
unsigned char byte;
bit_data bit;
};
- Pemberian nilai dilakukan melalui anggota byte ---> “ascii.byte = nilai”. Dengan cara tersebut, anggota bit menyimpan nilai yang sama dengan angota byte, karena byte dan bit dideklarasikan dalam union.
- Contoh lain penggunaan bit-field diantaranya untuk mendapatkan informasi piranti computer PC yang dapat diperoleh melalui fungsi biosequip().
Sumber
kode : ‘Pemrograman C++” (Abdul Kadir).
[RS]
Klik Like & Share jika postingan ini bermanfaat
Apa tanggapan Anda?
Berikan tanggapan Anda melalui kolom komentar yang telah disediakan.
- Gunakan bahasa yang sopan;
- Saat menjadikan postingan pada blog ini sebagai referensi, jangan lupa mencantumkan sumbernya (link dari blog ini).
Jika blog ini bermanfaat jangan lupa memberikan 'like' atau 'share' untuk mendapatkan update terbaru.
Terima kasih