//TÜM SAYI SİSTEMLERİ
//Bu program Hüseyin ÇAKANLI tarafından
//10.02.2012 tarihinde örnek bir algoritma olarak düzenlendi.
//Visual Studio 2010 ile test edilmiştir.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication4
{
class Program
{
static void Main(string[] args)
{
Console.Clear();
Console.WriteLine("Saydırılacak Sayı Sisteminin Karakterlerini Giriniz:");
string A = Console.ReadLine();
if (A == "01")
{
Console.WriteLine("Girdiğiniz Sistem BINARY Sayı Sistemidir.");
Console.ReadLine();
}
if (A == "01234567")
{
Console.WriteLine("Girdiğiniz Sistem OCTAL Sayı Sistemidir.");
Console.ReadLine();
}
if (A == "0123456789")
{
Console.WriteLine("Girdiğiniz Sistem ONLUK Sayı Sistemidir.");
Console.ReadLine();
}
if (A == "0123456789ABCDEF")
{
Console.WriteLine("Girdiğiniz Sistem HEXADECIMAL Sayı Sistemidir.");
Console.ReadLine();
}
int Boy = A.Length;
Console.WriteLine("Sistemin Anahtar Dizisi : {0}, uzunluğu : {1} Karakter.", A, Boy);
Console.WriteLine();
Console.WriteLine("Saydırmak istediğiniz son sayı(10 tabanında)");
int DurumSayisi = int.Parse(Console.ReadLine());
int Bolum = 0; int Kalan = 0; string Sonuc;
for (int i = 0; i < DurumSayisi; i++)
{
Kalan = i; Sonuc = ""; Bolum = i;
do
{
Kalan = (Kalan % Boy); Bolum = Bolum / Boy;
Sonuc = Kalan.ToString() + Sonuc;
Kalan = Bolum;
} while (Bolum >= Boy);
Sonuc = Bolum.ToString() + Sonuc;
while (Sonuc.Length < Boy)
{
Sonuc = "0" + Sonuc;
}
char[] Cikti = Sonuc.ToCharArray();
for (int j = 0; j < Boy; j++) Cikti[j] = A[int.Parse(Sonuc[j].ToString())];
string al = new string(Cikti);
Console.WriteLine("10 Tabanında = {0}--> Karşılığı : {1}", i, al);
}
Console.ReadLine();
}
}
}