9
Oca'11

C – Binary Sayıyı Decimal’a Çevirme (C Programlama Dili)

Kullanıcıdan istediği ikilik tabandaki sayıyı dizgi olarak alan ve pointer yardımıyla girilen sayıların 0 veya 1 mi olduğunu kontrol ederek adım adım, sayıyı decimal(onluk) sisteme çeviren program.İyi çalışmalar.

/*2 lik tanandaki sayıyı 10 luk tabana çevirme*/

#include <stdio.h>
#include <conio.h>
#include <string.h>

main(){

int uzunluk,i,j=0,islem=0;

char ikilik[20],*p;

p=ikilik;//dizinin ilk elemanı pointer değişkende.

printf("2'lik tabanda bir sayi giriniz.(ornek: 1011):\t");

gets(ikilik);

uzunluk=strlen(ikilik);//ne kadar uzunlukta bir sayı girildiğini bul.

for(i=1;i<uzunluk;i++) p++;
//pointer sayının sonuna gelsin(en sağına).

for(i=0;i<strlen(ikilik);i++){
	// i aynı zamanda kacıncı sayıda oldugumuzu da kontrol edıyor.

	if(*p=='1') islem+=j; 
	// diger sayılar icin j sayesınde isleme 2 nin katları olarak ekleme yapıyoruz.
	j=j*2;//2nin katlarını saglamak için.
	p--; //önceki sayıya geçmek için.

}

printf("\n\n10'luk Tabandaki Karsiligi:\t%d",islem);

getch();
}

11 Ocak 2011’de Güncellendi.

  • kemal

    cok güzel olmus eline saglık turgay..
    ben başka sekillerle yapmıstım ama bunu daha cok begendim :)
    yalnz j i 1 eşitliyip 31.satırda toplama işlemini çarpmaya cevirmen gerekio sanırım..
    bide su hocanın gecen sene sordugu dosyalama sorusunun tamm hali varsa yazarmısn

    • Turgay Özgür

      Öcelikle teşekkürler.
      Dediğin gibi o işlem çarpma olacak.j=j*2; şeklinde düzelttim. Dosyalama tarzı o dediğin soru da burada.

Yeni makaleleri E-Mail ile takip edin!