C# Console decimal(onluk) bir sayıyı ikilik(binary) bir sayıya dönüştürme

{{ page.title }}

Algoritma

  1. Başla
  2. sayi, i = 0, top = 0 değişkenlerini al
  3. sayi değerini gir
  4. sayi > 2 olduğu sürece 8. adıma kadar olan işlemleri yaptır.
  5. top = top + ( ( sayi % 2 ) * ( 10 ^ i ) )
  6. sayi = sayi / 2;
  7. i değişkenini arttır.
  8. top = top + ( sayi * ( 10 ^ i ) ) işlemini yap
  9. Yazdır top
  10. Bitir

Bu soru, kitapta çok kez çeşitlerini çözdüğümüz sorulardan biridir.Bildiğimiz üzere, bilgisayar 2’lik ( binary ) sayılarla işler. O zaman 10’lk tabandaki sayıyı çevirmesi gerekir. Bu durum matematik derslerinde taban değiştirme olarak da daha önce karşımıza çıkmıştır. Burada girilen 10’luk tabandaki sayı 2’ye böldürülüp kalanı 10’nun katlarına sırasıyl (0 dan itibaren) çarptırılıp bir değişkende toplanmıştır.

Aslında bu soruyu dizi mantığıyla yapmak daha kolaydır fakat burada bir kandırmaca yaparak soruyu çözüyoruz. Buna göre topladığımız sayılar yine 10’luk sistem olmasına rağmen ekrana basınca 2’lik gibi duracaktır.Algoritma, matemtik ve bilgisayar programcılığı böyle bir şeydir.

Kod Yapısı

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace dmg
{
class Program
{
static void Main(string[] args)
{
int sayi;
int i = 0;
double top = 0;
Console.WriteLine("Sayıyı giriniz = ");
sayi = Convert.ToInt32( Console.ReadLine() );
while( sayi > 2 )
{
top = top + ( sayi % ) * Math.Pow(10, i);
sayi = sayi / 2;
i++;
}
top = top + sayi/2 * Math.Pow(10,i);
Console.WriteLine("Binary Sayı = " + top);
Console.ReadKey();
}
}
}

BOT Benson Topluluk kurucusu ve bir yazılımcı.