Onlu (Desimal, 10 Tabanlı, Decimal) Sayı Sistemi
Günlük hayatta kullandığımız sayı sistemi 10 tabanına göredir. Yani bu sistemde 0-1-2-3-4-5-6-7-8-9 sayıları mevcuttur. Kullanılan bu sayı sistemine de Onlu Sayı Sistemi veya Desimal Sistem denilmektedir.
İkili (Binary, 2 Tabanlı) Sayı Sistemi
İkili sayı sisteminde sadece 1 ve 0′ lar bulunur. Bu sayı sistemi 2 tabanında olduğu için İkili Sayı Sistemi veya Binary Sistem olarak isimlendirilmektedir.
Algoritması
Desimal Sayıları, Binary Sayılara çevirmek için öncelikle 10 tabanında yazılmış olan sayıyı bölünebildiği sürece 2’ye bölmemiz gerekmekte. Bölme işlemleri tamamlandıktan sonra, en son yapmış olduğumuz bölmenin bölümünü ve kalanını alıp, diğer tüm bölme işlemlerinin de sırasıyla kalanlarını alarak ikili sayı sistemine dönüşümü yapabiliriz.
Yandaki örnekte 10 tabanındaki “33” sayısı ikili sayı sistemine dönüştürülmek için bölünebildiği sürece ikiye bölünmüştür. Son bölme işleminin bölümü ve kalanı, diğer bölme işlemlerininde sadece kalanları alınıp yan yana yazılarak, sayının 2 tabanında ki karşılığı bulunmuştur.
Yapılan bu işlemler C# ile kodlarken:
- İkili sisteme çevrilecek sayının kullanıcı tarafından girilmesi sağlandı.
- While döngüsü açılıp, girilen sayı 2’ye bölünebildiği sürece içerisinde ki kodların çalıştırılması sağlandı.
- While Döngüsü çalıştığı sürece;
- Sayının, ikiye bölümünden kalan “%” operatörü ile alınıp, kalanları tutan bir diziye aktarıldı.
- Sayının ikiye bölümünden elde edilen bölüm, girilen sayının tutulduğu değişkene yeni değer olarak atandı.
- Sayı ikiden küçük olduğunda, sonuncu bölme işleminin bölümü, kalanları tutan dizinin, sonuncu indeksine atanıp, döngüden çıkıldı.
- Son olarak da kalanları tutan dizi tersten ekrana yazdırıldı.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace İkilikSayiSistemi { class Program { static void Main(string[] args) { Console.Title = "Onluk Sayı Sisteminden İkili Sayı Sistemine Dönüşüm"; int[] Kalan = new int[100000]; int KalanNo = 0; Console.Write("Sayıyı Giriniz..................:"); int Sayi = int.Parse(Console.ReadLine()); while(true) { Kalan[KalanNo] = Sayi % 2; Sayi = Sayi / 2; KalanNo++; if (Sayi < 2) { Kalan[KalanNo] = Sayi; break; } } Console.Write("İkili Sayı Sistemindeki Eşiti...:"); for(int i=KalanNo;i>=0;i--) { Console.Write(Kalan[i]); } Console.WriteLine("n"); } } }