Csharp ile Sayı Sistemleri arasında dönüşüm

Bu makalemizde sayı sistemleri arasında dönüşümü Csharp programlama dili ile gerçekleştireceğiz. C#'ın geniş matematik kütüphanesinden henüz yararlanmasak da, matematiksel problemleri çözerek algoritma kurma yeteneğimizi bir seviye daha artıracağız.

Örnek: Onluk(Desimal) sistemde girilen bir sayıyı İkili Sayı Sistemine çeviriniz. 

Aşağıdaki kodlarda girilen sayı sürekli ikiye bölünüyor, ve mod işlemi(%) ile kalan değer bulunup bir string içinde depolanıyor. Girilen sayıyı 2'ye bölme işlemi bölüm değeri 2'den küçük olana kadar devam ediyor.

    kalan = sayi % 2;  
    bolum = sayi / 2;
 
Sonsuz döngü içinde yapılan bu işlem, sayının bölüm değeri 2'den küçük olunca break komutu ile sonsuz döngüden çıkarak, sonuç değerini ekrana yazdırıyoruz ve işlemi  tamamlıyoruz.

using System;
 
namespace İkiliSayiSistemineCevirme
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Sayıyı giriniz:");
            int sayi = int.Parse(Console.ReadLine());
            string sonuc="";
            int kalan = 0;                                                                                                                       
            int bolum = 0;
 
            for (; ; )
            {
                kalan = sayi % 2;  
                bolum = sayi / 2;
                
                sonuc = kalan.ToString()+sonuc;
 
                if (bolum < 2) {
                    sonuc = bolum.ToString()+sonuc;
                    break; 
                }
                sayi = bolum;
                
            }
 
            Console.WriteLine("Sonuç:{0}", sonuc);
 
        }
    }
}


Aşağıdaki örnek ile İkili sayı sisteminden onluk(decimal) sayı sistemine çevirme için gerekli kodları görmektesiniz. Bir sayıyı 2'lik sistemden desimal(onluk) sisteme çevirmek için sayının hanelerini sondan başlayarak 2 üzeri 0, 2 üzeri 1, 2 üzeri 2, 2 üzeri 3, ...., 2 üzeri n-1 ile çarpıp, elde edilen sonuçları toplayarak elde ediyoruz. 

Ado.net kütüphanesinde yer alan Pow fonksiyonunu Math.Pow(taban, üst) şeklinde kullanıyoruz. Örneğin 2 üzeri 3 ise Math.Pow(2,3) şeklinde yazıyoruz.  

using System;
 
namespace İkilidenOnluya
{
    class Program
    {
        static void Main(string[] args)
        {
            double ust, hane, sonuc=0;
            Console.Write("2'lik sistemde sayıyı giriniz:");
            int sayi = int.Parse(Console.ReadLine());
            string sayistr = sayi.ToString();
            int n = sayistr.Length;
 
            for (int i=0; i<n; i++)
            {
                 ust= Math.Pow(2, i);
                 hane= int.Parse(sayistr[n-i-1].ToString());
 
                 sonuc+= hane*ust;
 
            }
            Console.WriteLine("Sonuc:{0}", sonuc);
        }
    }
}




İyi çalışmalar,
Oğuzhan TAŞ
Mart, 2015

Bookmark and Share