MATLAB Sayı Tabanı Dönüşümleri (Taban Aritmetiği)


Bu yazımızda, MATLAB kullanarak taban aritmetiği yapan programdan oluşturacağız. Biz günlük hayatta onlu(decimal) sayı sistemini kullanırız. Bilgisayarlar ikili(binary) sayı sistemini kullanır. Bu yazımızda, bir başka sayı tabanındaki sayıyı onlu sayı tabanına ve onlu sayı tabanındaki sayıyı bir başka sayı tabanına çeviren programlar yazacağız. Yazacağımız programlar pozitif ve ondalıksız sayılar için olacak. Lafı daha fazla uzatmadan kodlamaya geçelim.

Başka Bir Sayı Tabanından Onlu Sayı Tabanına Dönüşüm Yapan MATLAB Programı

Başka bir sayı tabanından onlu sayı tabanına dönüşüm yaparken; sayının basamaklarındaki ifadeler(rakam veya harf olabilir), üssü olan taban ile çarpılır ve bu çarpımların toplamıyla onlu sayı sistemindeki karşılığı bulunur. Örnek olarak, üçlü sayı tabanında verilen 21 sayısını onlu sayı tabanına dönüşümü:

(21)3 = 2x31 + 1x30 , (21)3 = 7 şeklindedir.

Tabanın üssü; son basamaktan itibaren, 0’dan başlayarak birer birer artmaktadır. Ayrıca dikkat edilmesi gereken bir başka kısım ise, sayının basamağındaki rakamlar tabandan büyük olamaz. Kodumuzu bu konulara dikkat ederek oluşturacağız. Kodlamaya geçelim:

%kodlamaogreniyorum.com,2021
function onlutabanacevir(sayi, taban)
taban = abs(fix(taban)); %hataya karşı pozitif, tam sayı taban
sayi=abs(fix(sayi)); %pozitif,ondalıksız sayılar
sayi=num2str(sayi); %str çevirme   
if ~any(str2num(sayi(:))>=taban) && (taban>1) && (taban<10) %taban kontrol
    cevrilmis_sayi=0;
    us = 0;
    for i=flip(sayi)
        cevrilmis_sayi=cevrilmis_sayi+str2num(i)*(taban^us);
        us = us + 1;
    end
    fprintf('(%s)_%d = %d\n',sayi,taban,cevrilmis_sayi);
else
    fprintf('Girdiğiniz sayı ile taban uyumsuz!\n');
end
end

3. ve 4. satırda yazdığımız ifadeler ile kullanıcının hatalı taban veya sayı girmesini önlemiş olduk. “~any(str2num(sayi(:))>=taban)” ifadesi ile basamaklardaki rakamların tabandan büyük olup olmadığını kontrol ettik. “for i=flip(sayi)” döngüsündeki “i”, sayının son basamağından başlayarak, her basamaktaki rakamları ifade etmektedir.

Onlu tabana dönüşüm yapan MATLAB Fonksiyonu: base2dec()

Girdilerin ilkinin sözel, ikincinin ise sayısal ifade olmasına dikkat edelim.
Görseli büyütmek için üstüne tıklayın.

Onlu Sayı Tabanından Bir Başka Sayı Tabanına Dönüşüm Yapan MATLAB Programı

Onlu sayı tabanından bir başka sayı tabanına dönüşüm yapmak için; sayı, tabandan küçük kalıncaya kadar sürekli olarak tabana bölünür. Bu işlem sonrasında, ilk olarak bölüm ve sondan başa olacak sırayla tüm kalanlar soldan sağa doğru yazılarak yeni sayı bulunur. Örnek olarak, 137 sayının altılı sayı tabanına dönüşümü:

137 = (x)6

137 / 6 = 22    Kalan:5

22 / 6 = 3   Kalan:4

137 = (345)6 şeklindedir.

Kodlamaya geçelim:

%kodlamaogreniyorum.com,2021
function tabandegistir(sayi, taban)
if (taban>1) && (taban<10)
    taban = fix(taban); %hataya ondalıksız taban
    sayi=abs(fix(sayi)); %pozitif,ondalıksız sayılar
    sayi2 = sayi; %fprintf için saklama
    cevrilmis_sayi = [];
    while sayi >= taban
        kalan = mod(sayi,taban);
        sayi = fix(sayi/taban);
        cevrilmis_sayi = [num2str(kalan) num2str(cevrilmis_sayi)];
        if sayi < taban
            cevrilmis_sayi = [num2str(sayi) num2str(cevrilmis_sayi)];
        end
    end
    fprintf('%d = (%s)_%d\n',sayi2,cevrilmis_sayi,taban);
else
    fprintf('Tabanı kontrol edin!\n');
end
end

4. ve 5. satırda yazdığımız ifadeler ile hatalı sayı veya taban girilmesini önlemiş olduk. Girilin sayı üzerinden işlem yaptığımız için 6. satırdaki ifade ile girilen sayının kopyasını oluşturduk. “while sayi >= taban” ifadesi ile döngünün, sayı tabandan küçük kalıncaya kadar devam etmesini sağladık. “cevrilmis_sayi = [num2str(kalan) num2str(cevrilmis_sayi)];” ifadesi ile sondan başa ekleme yapmayı sağladık.

Görseli büyütmek için üstüne tıklayın.

Programın “.m” dosyalarını aşağıdaki linklerden indirebilirsiniz.

Yeni içerikler için sitemizi takip etmeyi unutmayın. Yeni yazılarda görüşmek üzere!

Onlu Tabandan Dönüşüm Yapan Programın “.m” Dosyası Sponsorlu LinkİNDİR (Devam Et butonuna bastıktan sonra dosya otomatik indirilecektir, sekmeyi kapatabilirsiniz.)

Onlu Tabana Dönüşüm Yapan Programın “.m” Dosyası Sponsorlu LinkİNDİR (Devam Et butonuna bastıktan sonra dosya otomatik indirilecektir, sekmeyi kapatabilirsiniz.)

close

Yeni yazılardan haberdar olmak için sitemize abone olun.

İstenmeyen posta göndermiyoruz! Sadece yeni yazılarla ilgili mail alacaksanız.

2 thoughts on “MATLAB Sayı Tabanı Dönüşümleri (Taban Aritmetiği)

  • 27 Ocak 2021 tarihinde, saat 23:44
    Permalink

    m dosyasının indirilmesi gerçekleşmiyor.
    karşıma oyun indir ekranı çıkıyor.
    mail adresime uygulama 5 taban aritmetiğini gönderirseniz sevinirim.

    Yanıtla
    • 28 Ocak 2021 tarihinde, saat 00:00
      Permalink

      Linkler düzgün çalışmaktadır. İndir linkine tıkladıktan 5 saniye sonra devam et butonu çıkıyor. Devam et butonuna basınca .m dosyası inmeye başlıyor. Ad blocker varsa göremezsiniz o ekranı.

      Yanıtla

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir