Onlu Sayıyı İkili Sayıya Çevirme

Bu dersimizde C#'ta onlu bir sayıyı ikili bir sayıya çevirmeyi göreceğiz.

Bu dersimizde C#'ta onlu bir sayıyı ikili bir sayıya çevirmeyi göreceğiz.

Kod Açıklaması :

- İkili tabandaki sayıyı string olarak oluşturmak mantıklı olduğundan *bSayi char olarak tanımlanıyor.

- Yazılan onlu tabandaki sayının ikili tabana çevrilince kaç basamaklı olacağını bulunuyor.Çünkü binary sayıyı yazmaya en sağdan başlanacak.Ayrıca dinamik bellek kullandığımız için en sağına null atanıyor.

- İkili tabana uyarlama mantığı şu şekilde çalışır:

a) Sayı tek ise en sağa 1 yaz. Değilse 0 yaz.

b) Sayı tek ise sayıdan 1, değilse 0 çıkar ve ikiye böl.

c) Sayı = 0 değil ise ?a? adımına git.

Örneğin:

Sayı 12 olsun.

sayi mod 2 = 0 ise binary=(?0) sayı=12-0 = 12 / 2 = 6

sayi mod 2 = 0 ise binary=(..00) sayı=6-0 = 6 / 2 = 3

sayi mod 2 = 1 ise binary=(.100) sayı=3-1 = 2 / 2 = 1

sayi mod 2 = 1 ise binary=(1100) sayı=1-1 = 0

sayi = 0 ise bitti.


#include<stdio.h>  

#include<conio.h>  

#include<stdlib.h>  

  

main(){  

       int dSayi,tdSayi,i=0,db;  

       char *bSayi;  

  

       printf("Decimal Sayi : "); scanf("%d",&dSayi);  

  

       //binary sayıları diziye sondan başa dogru yazabilmek için;  

       tdSayi = dSayi;//binary sayının kaç rakamdan olusacagu bulunur.  

       while(tdSayi != 1){  

             tdSayi=tdSayi/2;  

             i++;  

       }//i+1 tane rakamdan olusacaktır.  

  

       bSayi = (char *) malloc((i+1)*sizeof(char));  

  

       bSayi[i+1] = NULL;//dizgi sonuna NULL atandı.  

  

       while(dSayi != 0){  

             if(dSayi%2 == 1) {bSayi = '1'; db=1;}  

             else {bSayi = '0'; db=0;}  

  

             dSayi =(dSayi - db)/2;  

             i--;  

       }  

  

       printf("nnBinary Karsiligi : %s",bSayi);  

  

getch();  

}

  • Etiketler;
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Bu C kodu değil mi? :/
ya bu program c# değil galiba bana c#da yazılmışı acil lazım yardımcı olabilir misiniz?

Yukarı Git