Program Konversi Biner Dengan C

Ni gw bikin contoh program konversi biner dengan bahasa C. Tampilan programnya seperti di bawah ini :


Jadi maksudnya program di atas adalah ketika kita memasukan suatu angka dari 0 sampai 255, maka angka tersebut akan diubah ke bilangan binernya. Contoh di atas saya masukan angka 125 dan akan diubah ke bilangan biner seperti gambar di bawah ini :


Download Codingnya

5 komentar:

RoodCah mengatakan...

masih sederhana program konversinya bung...

contoh jika mengetikan angka 9
seharusnya yang keluar
1001
jangan
00001001

RoodCah mengatakan...

//program utama
int main(){
char input[max],*c;
int flag=true,cek;

inisialisasi();
while(flag){
switch(menu()){
case 1:do{
clrscr();
printf("\n\n\t\t\t\t** DECIMAL TO BINER **\n");
printf("\n\t\t\t\t----------------------\n");

printf("\n\t\tmasukan bilangan desimal : ");
gets(input);
if(cek_desimal(input))
cek=true;
else
cek=false;
}while(cek==false);
konversi_desimal(input);
flag=true;
break;
case 2: do{
clrscr();
printf("\n\t\t\t\t----------------------\n");
printf("\n\t\t\t\t** BINER TO DECIMAL **\n");
printf("\n\t\t\t\t----------------------\n");
printf("\t\t\t\t**********************");
printf("\n\t\tmasukan bilangan biner : ");
gets(input);

if(cek_biner(input))
cek=true;
else
cek=false;
}while(cek==false);
konversi_biner(input);
flag=true;
break;

case 3: clrscr();printf("\n\n\t\t\t\t ** ABOUT ME **\n");
printf("\n\t\t\t\t --------------\n");
printf("\n\t\tthis program design by roodcah\n");
flag=true;
break;

case 4: clrscr();
printf("\n\t\t\t\t ** SOURCE CODE **\n");
printf("\n\t\t\t\t --------------\n");
getchar();
src_code();
flag=true;
break;


default:clrscr();
printf("\n\n\t\t\t\t** EXIT PROGRAM **\n");
printf("\n\t\t\t\t------------------\n");
printf("\n\t\ttekan sembarang tombol untuk keluar");
flag=false;
break;
}
getch();
}
return 0;
}

RoodCah mengatakan...

//menampilkan menu utama dari program
int menu(){
char *s;
int input;

do{
clrscr();
printf("\n\
**************************************************\n\
# program konversi 16 bit dng implementasi stack #\n\
# # \n\
#================================================#\n\
# ================================= #\n\
# # # # \n\
# # 1. konversi desimal ke biner # #\n\
# # 2. konversi biner ke desimal # #\n\
# # 3. about me # #\n\
# # 4. view source code # #\n\
# # 5. exit program # # \n\
# # # # \n\
# ================================= #\n\
#================================================#\n\
**************************************************\n\
input menu : ");
gets(s);
input=char_to_i(s);
}while(input <1 || input >5);
return input;
}


//nilai awal dari top.
void inisialisasi(){
top=-1;
}

//fungsi untuk mengecek input,
//apakah bilangan numerik atau bukan.
int cek_desimal(char *input){
int hasil;
while(*input){
if(*input >='0' && *input <='9')
hasil =true;
else{
hasil=false;
printf("\n\t\tinput yang anda masukan harus berupa numerik\n");
getch();
break;
}
input++;
}
return hasil;

}

//fungsi untuk mengecek input,
//apakah bilangan biner atau bukan.
int cek_biner(char *input){
int hasil;
while(*input){
if(*input >='0' && *input <='1')
hasil =true;
else{
hasil=false;
printf("\n\t\tinput yang anda masukan harus bilangan biner 0 atau 1 \n");
getch();
break;
}
*input++;
}
return hasil;
}

//fungsi untuk mengecek kondisi-
//dari stack apakah bisa di isi-
//atau tidak.
int cek_stack(){
if(top>=-1 && top =1){
temp=data%2;
push(temp);
data/=2;
}
}
cetak(data1);
}

//fungsi untuk memangkatkan bilangan.
//dengan rekursif
double pangkat(int x,int y){
double result;
if(y==0)
return 1;
result=(double)x*pangkat(x,y-1);
return result;
}

//fungsi untuk konversi biner ke-
//bilangan desimal.
void konversi_biner(char *input){
int data,i;
long int result=0;
while(*input){
data=c_to_i(input);
push(data);
input++;
}
i=0;
while(!empty()){
data=pop();
result+=(long int)data*pangkat(2,i);
i++;
}
printf("\n\n\t\tdesimalnya = %li",result);

}

//fungsi untuk menampilkan sourde code
//dari program.
void src_code(){
FILE *fp;
char ch;
int i=0;

if((fp=fopen("RODSTACK.TXT","r"))==NULL){
printf("can't open file\a\a\a");
exit(1);
}

ch=getc(fp);
while(ch!=EOF){
putchar(ch);
ch=getc(fp);
if(ch=='\n'){
i++;
if(i==18){
getch();
clrscr();
i=0;
}
}
}
fclose(fp);
getchar();

}

RoodCah mengatakan...

/*
#***************************************************************************#
# contoh program konversi desimal ke biner dan sebaliknya #
# dengan mengimplementasikan stack maksimum 16 bit #
# design by roodcah 22-11-08 #
#***************************************************************************#
*/


#include
#include


#define max 16
#define false 0
#define true !false

int value[max];//stack dengan maksimum 16 bit
int top;

//fungsi untuk mencari panjang dari-
//input yang dimasukkan oleh user.
int length(char *s){
int result=0;
while(*s){
result++;
s++;
}
return result;
}

//fungsi untuk mengubah karakter-
//menjadi bilangan numerik.
//contoh '5' bukanlah 5, melainkan 53.
//lihat kode asci '5' = 53.
int c_to_i(char *s){
int data;
data=(int)*s-'0';
return data;
}

//fungsi untuk mengubah string
//menjadi numerik misalnya
//'123' menjadi 123.
long int char_to_i(char *s){
long int result=0,pow,temp;
int i,length_s;
length_s=length(s);
while(*s){
pow=1;
temp=c_to_i(s);
for(i=1;i<length_s;i++)
pow*=10;
temp*=pow;
result+=temp;
length_s--;
s++;
}
return result;
}

RoodCah mengatakan...

kompile sendiri ya bung kalo mw programnya..hehehe

semuwa fungsi yang ada dibuat sendiri