Bir sayıyı bir tabandan başka bir tabana çevirmek

Ahbap

Harbi Üye
Forum Üyesi
Katılım
29 Mayıs 2019
Mesajlar
8,562
Tepkime puanı
2
PHP:
 #include <stdlib.h>
#include <stdio.h>
#include <math.h>

int main ()
{
     int sayi, taban1, taban2;
        int r1, r2, i;

        // Algoritma 2 - 10 arasındaki tabanlarda bulunan bir sayıyı, yine
        // aynı aralıkda, başka bir tabandaki sayıya çeviriyor.

        printf (" Sayi       : ");
        scanf  ("%d", &sayi);

        printf (" Taban      : ");
        scanf  ("%d", &taban1);

        printf (" Yeni taban : ");
        scanf  ("%d", &taban2);

        r1 = i = 0;

        // Sayı ilk olarak onluk tabana çevriliyor. (sayi % 10) bize
        // sayinin son rakamini verir. while içerisinde sayı üzerinde
        // sağdan sola doğru ilerleniyor ve ulaşılan her rakam uygun
        // katsayıyla çarpılarak verilen sayı onluk tabana çevriliyor.
        // Bu uygun katsayılar, örneğin 3 tabanı için 1, 3, 9, 27 ...
        // şeklindedir.

        while (sayi != 0)
        {
             r1 += (sayi % 10) * (int) pow (taban1, i);

             sayi /= 10;

             i ++;
        }

        i = 0;

        // Aşağıdaki while ile yeni oluşacak sayının kaç basamaklı
        // olduğu bilgisi elde ediliyor.

        while (r1 > pow (taban2, i)) i ++;

        printf (" Yeni  sayi : ");

        // Orjinal tabanından onluk tabana çevrilmiş sayı, artık yeni
        // tabana çevrilmek için hazır. Yeni sayının soldan sağa doğru
        // rakamları tek tek elde ediliyor.

        while (i > 0)
        {
             r2 = r1 / (int) pow (taban2, i - 1);

             r1 -= r2 * (int) pow (taban2, i - 1);

             printf ("%d", r2);

             i --;

        }

        printf ("\n\n");

        return 0;
}
 

Benzer konular

İçerik sağlayıcı "paylaşım" sitelerinden biri olan Harbimekan.Com Forum, Eğlence ve Güncel Paylaşım Platformu Adresimizde 5651 Sayılı Kanun’un 8. Maddesine ve T.C.K’nın 125. Maddesine göre TÜM ÜYELERİMİZ yaptıkları paylaşımlardan sorumludur. Harbimekan.Com sitesindeki konular yada mesajlar hakkında yapılacak tüm hukuksal Şikayetler için info@harbimekan.com yada iletişim sayfası üzerinden iletişime geçilmesi halinde ilgili kanunlar ve yönetmelikler çerçevesinde en geç 3 Gün (72 Saat) içerisinde Forum yönetimi olarak tarafımızdan gereken işlemler yapılacaktır.

Bu Site, Bilim ve Sağlık Haber Ajansı Üyesidir.

Yığıntı - 8kez - kaynak mağazam - Uğur Ağdaş