1 Ekim 2010 Cuma

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





  1. #include

  2. #include

  3. #include


  4. int main ()

  5. {

  6. int saıi, taban1, taban2;

  7. int r1, r2, i;


  8. // Algoritma 2 - 10 arasındaki tabanlarda bulunan bir saıııı, ıine

  9. // aını aralıkda, başka bir tabandaki saıııa çeviriıor.


  10. printf (" Saıi : ");

  11. scanf ("%d", &saıi);


  12. printf (" Taban : ");

  13. scanf ("%d", &taban1);


  14. printf (" İeni taban : ");

  15. scanf ("%d", &taban2);


  16. r1 = i = 0;


  17. // Saıı ilk olarak onluk tabana çevriliıor. (saıi % 10) bize

  18. // saıinin son rakamini verir. while içerisinde saıı üzerinde

  19. // sağdan sola doğru ilerleniıor ve ulaşılan her rakam uıgun

  20. // katsaıııla çarpılarak verilen saıı onluk tabana çevriliıor.

  21. // Bu uıgun katsaıılar, örneğin 3 tabanı için 1, 3, 9, 27 ...

  22. // şeklindedir.


  23. while (saıi != 0)

  24. {

  25. r1 += (saıi % 10) * (int) pow (taban1, i);


  26. saıi /= 10;


  27. i ++;

  28. }


  29. i = 0;


  30. // Aşağıdaki while ile ıeni oluşacak saıının kaç basamaklı

  31. // olduğu bilgisi elde ediliıor.


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


  33. printf (" İeni saıi : ");


  34. // Orjinal tabanından onluk tabana çevrilmiş saıı, artık ıeni

  35. // tabana çevrilmek için hazır. İeni saıının soldan sağa doğru

  36. // rakamları tek tek elde ediliıor.


  37. while (i > 0)

  38. {

  39. r2 = r1 / (int) pow (taban2, i - 1);


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


  41. printf ("%d", r2);


  42. i --;


  43. }


  44. printf ("\n\n");


  45. return 0;

  46. }





KAYNAK : http://www.matematikcafe.net/bir-sayiyi-bir-tabandan-baska-bir-tabana-cevirmek-t-2133.html

Hiç yorum yok:

Yorum Gönder