Tampilkan biner dari sebuah karakter (C++)
pada bahasa C tidak ad intruksi untuk menampilkan nilai biner sehingga jika kita ingin tau nilai biner dari sebuah karakter atau angka, maka kita harus menghitung sendiri.
kali ini akan saya bahas bagaimana cara tampilkan nilai biner dari sebuah karakter walaupun nilai yg akan tampil nanti juga sebuah karakter 0 atau 1.
jika karakter 0 dan 1 tersebut diurut maka akan membentuk urutan biner, sekali lagi saya ingatkan bahwa urutan angka 0 dan 1 bukan merupakan biner melainkan sebuah karakter.
langsung aja kita liat proses yg dikerjakan oleh program ini.
1. menunggu data dari keyboard berupa sebuah karakter
2. mengubah menjadi hexa dan ditampilakan
3. melakukan pembagian 2 untuk mendapatkan nilai akhir (LSB) seperti pada program yg telah saya bahas sebelumnya.
4. menyimpan data sisa pembagian tersebut ke sebuah variable (ada 8 variable untuk 8 bit biner)
5. melakukan pergeseran kekanan untuk bit berikutnya (lihat ilustrasi)
6. mengulangi langkah 3 sampai 5 sampai pengulangan yg ke delapan (untuk 8 bit biner)
programnya adalah seperti dibawah ini:
#include
#include
main()
{ char karakter;
int geser,bit,simpan,data=0,
d1,d2,d3,d4,d5,d6,d7,d8;
clrscr();
printf("masukkan karakter = ");
scanf("%c",&karakter);
printf("nilai hexa nya adalah : %xh\n",karakter);
geser=karakter;
for(bit=0;bit<8;bit++)
{
simpan=geser%2;
data=data++;
if(data==1)
{
d1=simpan;
}
if(data==2)
{
d2=simpan;
}
if(data==3)
{
d3=simpan;
}
if(data==4)
{
d4=simpan;
}
if(data==5)
{
d5=simpan;
}
if(data==6)
{
d6=simpan;
}
if(data==7)
{
d7=simpan;
}
if(data==8)
{
d8=simpan;
}
geser=geser>>1;
}
printf("nilai biner dari karakter yang anda masukkan adalah : \n\n");
printf("%d%d%d%d %d%d%d%d",d8,d7,d6,d5,d4,d3,d2,d1);
getch();
}
alur ilustrasi program dengan contoh karakter "A" tanpa tanda kutip:
A = 41 hexa
biernya:
step 1.
0100 0001
-----------%2---sisa 1
step 2.
geser kanan
0010 0000
-----------%2---sisa 0
step 3.
geser kanan
0001 0000
-----------%2---sisa 0
step 4.
geser kanan
0000 1000
-----------%2---sisa 0
step 5.
geser kanan
0000 0100
-----------%2---sisa 0
step 6.
geser kanan
0000 0010
-----------%2---sisa 0
step 7.
geser kanan
0000 0001
-----------%2---sisa 1
step 8.
geser kanan
0000 0000
-----------%2---sisa 0
selesai.......
jika diurutkan mulai dari step 8 sapai step 1
maka akan terlihat seperti berikut ini
[step8][step7][step6][step5] [step4][step3][step2][step1]
0 1 0 0 0 0 0 1
bernilai 41 benar kan?
selamat mencoba...........
kali ini akan saya bahas bagaimana cara tampilkan nilai biner dari sebuah karakter walaupun nilai yg akan tampil nanti juga sebuah karakter 0 atau 1.
jika karakter 0 dan 1 tersebut diurut maka akan membentuk urutan biner, sekali lagi saya ingatkan bahwa urutan angka 0 dan 1 bukan merupakan biner melainkan sebuah karakter.
langsung aja kita liat proses yg dikerjakan oleh program ini.
1. menunggu data dari keyboard berupa sebuah karakter
2. mengubah menjadi hexa dan ditampilakan
3. melakukan pembagian 2 untuk mendapatkan nilai akhir (LSB) seperti pada program yg telah saya bahas sebelumnya.
4. menyimpan data sisa pembagian tersebut ke sebuah variable (ada 8 variable untuk 8 bit biner)
5. melakukan pergeseran kekanan untuk bit berikutnya (lihat ilustrasi)
6. mengulangi langkah 3 sampai 5 sampai pengulangan yg ke delapan (untuk 8 bit biner)
programnya adalah seperti dibawah ini:
#include
#include
main()
{ char karakter;
int geser,bit,simpan,data=0,
d1,d2,d3,d4,d5,d6,d7,d8;
clrscr();
printf("masukkan karakter = ");
scanf("%c",&karakter);
printf("nilai hexa nya adalah : %xh\n",karakter);
geser=karakter;
for(bit=0;bit<8;bit++)
{
simpan=geser%2;
data=data++;
if(data==1)
{
d1=simpan;
}
if(data==2)
{
d2=simpan;
}
if(data==3)
{
d3=simpan;
}
if(data==4)
{
d4=simpan;
}
if(data==5)
{
d5=simpan;
}
if(data==6)
{
d6=simpan;
}
if(data==7)
{
d7=simpan;
}
if(data==8)
{
d8=simpan;
}
geser=geser>>1;
}
printf("nilai biner dari karakter yang anda masukkan adalah : \n\n");
printf("%d%d%d%d %d%d%d%d",d8,d7,d6,d5,d4,d3,d2,d1);
getch();
}
alur ilustrasi program dengan contoh karakter "A" tanpa tanda kutip:
A = 41 hexa
biernya:
step 1.
0100 0001
-----------%2---sisa 1
step 2.
geser kanan
0010 0000
-----------%2---sisa 0
step 3.
geser kanan
0001 0000
-----------%2---sisa 0
step 4.
geser kanan
0000 1000
-----------%2---sisa 0
step 5.
geser kanan
0000 0100
-----------%2---sisa 0
step 6.
geser kanan
0000 0010
-----------%2---sisa 0
step 7.
geser kanan
0000 0001
-----------%2---sisa 1
step 8.
geser kanan
0000 0000
-----------%2---sisa 0
selesai.......
jika diurutkan mulai dari step 8 sapai step 1
maka akan terlihat seperti berikut ini
[step8][step7][step6][step5] [step4][step3][step2][step1]
0 1 0 0 0 0 0 1
bernilai 41 benar kan?
selamat mencoba...........