C# Sayı Tabanını Değiştirme, yazım ile C# Eğitim setime devam ediyorum. Bu dersimizde bir sayının tabanını değiştirmeyi göreceğiz. Bu konuyu lisede döneminde görüyoruz. Örneğin biz mevcutta sayıları onluk tabanda kullanırız. Şimdi bu sayı tabanları arasında dönüşüm yapabilecek kodlarımızı verelim.
C# Sayı Tabanını Değiştirme
Lise dönemindeki matematik konularından birisidir sayı tabanları. Ama yine de kısa bir hatırlamaya çalışalım.
Mevcutta sayıları onluk tabanda kullanırız. Rakam olarak en büyük rakam 9 dur. Örneğin tabanı dört olan bir sayıda en büyük rakam 3 olabilir. Tabanı 7 olan bir sayıdaki en büyük rakam da 6 olabilir.
Küçük bir hatırlatmadan sonra bu işlemi C# üzerinde nasıl yapacağımıza bir bakalım.
Form tasarımı yukarıdaki gibidir.
Şimdi kodlarımıza bakalım. Öncelikle taban dönüşümünü yapacak metodumuzu verelim.
string TabanCevir(long x, int n) { if (n < 2) return "-1"; long b; string s = ""; while (x >= n) { b = x % n; x = x / n; if (b > 9) s = (char)(55 + b) + s; else s = b + s; } if (x > 9) s = (char)(55 + x) + s; else s = x + s; return s; }
Kodlarımızı açıklayalım.
Eğer taban değeri 2 den küçük girilirse taban 2’den küçük olamayacağı için direk -1 değerini döndürüyoruz.
Mod değerlerini tutmak için long tipinde bir değişken tanımlıyoruz. String tipinde bir değişken tanımlıyoruz, sonuç değeri bu değişkende tutulacak.
While döngümüzde, sayı tabandan küçük olana kadar döngümüz çalışacak
Sayının tabandaki kalanı alınıp, b değişkenine aktarılıyor.
Sayı sürekli tabana bölünüyor ve x in değeri sürekli değişiyor.
Eğer Sayının tabana bölümünde kalan 9 dan büyükse ASCII karakter tablosunda başlangıç olan A harfinin değeri 65 olduğundan burada böyle bir işlem kullanıyoruz. 9 dan büyük rakamlar harfe çevrilecek.
Şimdi de butonumuzun click eventindeki kodlarını verelim.
private void button1_Click(object sender, EventArgs e) { long x; int n; try { x = int.Parse(txt_sayi.Text); n = int.Parse(txt_taban.Text); txt_sonuc.Text = TabanCevir(x, n); } catch (Exception) { throw; } }
Ekran çıktısı yukarıdaki görselde olduğu gibidir.
C# Sayı Tabanını Değiştirme yazım da bu kadardır arkadaşlar. Diğer derslerimizde görüşmek üzere.
C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız.
Derslerime özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz…
Takipte ve Sağlıcakla kalın. ;)
(08.02.2021) Matematiksel İşlemler adlı Github projeme bağlantıya tıklayarak ulaşabilirsiniz. Bu konu ve sitemdeki diğer tüm matemetiksel işlemlere bu proje üzerinden de ulaşabileceksiniz.