Cemalizim | 19 Temmuz 2008 15:23 | Bir sayıyı bir tabandan başka bir tabana çevirmek PHP- Kodu: #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; }
Alıntıdır |