Komputer Świat Ekspert - Forum: [C++] Zamiana systemu dziesiętnego na wszystkie inne - Komputer Świat Ekspert - Forum

Skocz do zawartości

Strona 1 z 1

[C++] Zamiana systemu dziesiętnego na wszystkie inne

#1 Użytkownik nie jest zalogowany   qba89 

  • Nowy Uczestnik
  • Grupa: Czytelnicy
  • Postów 81
  • Rejestracja: 24-czerwiec 04

Napisano 09 styczeń 2011, 22:40

Witam,

jak w temacie, zwracam się z prośbą o pomoc przy tym programie.

Próbuję zrobić program, trochę już mam, ma przeliczać liczby z dziesiętnego systemu na wszystkie inne, zrobiłem wszystkie podstawowe od dwójkowego do dziewiątkowego, szesnastkowy też zrobiłem bo wystarczyło użyć
cout << hex << x;
jednak mam problem z resztą systemów, np. trzynastkowy, przy zamianie liczby z dziesietnego na trzynastkowy, nie wiem jak to wszystko ująć, by do mojej reszty z dzielenia zostały przypisywane znaki odpowiednio do ich ilości w systemie

np.

334\13 | reszty 9
25\13 | reszty 12 odpowiada w tym systemie litera C
1 | reszty 1

a więc 334 w dziesiętnym to 1C9 w trzynastkowym, tylko jak zapisać to w kodzie, aby program to sam wyliczył?

Poniżej daje to co już mam:


# include <iostream>
int main ()
{
 using namespace std;
cout <<"Zamiana liczb pomiedzy dziesietnym, a innymi systemami"<<endl<<endl;
int tab[1]={0};
int ile=0;
int x,y;
cout <<"Podaj liczbe w systemie dziesietnym, ktora chcesz zamienic:";
cin>>x;
cout <<"Na jaki system chcesz zamienic?\n 2 - dwojkowy\n 3 - trojkowy\n 5 - piatkowy\n 6 - szostkowy\n 7 - siodemkowy\n 8 - osemkowy\n 9 - dziewiatkowy\n 11 - jedenastkowy\n 13 - trzynastkowy\n 16 - szesnastkowy\n 20 - dwudziestkowy\n";
cin>>y;
if (y==16)
{
cout <<"Wartosc w systemie szesnastkowym:\n";
cout << hex << x;
cout <<" \n";

      system("PAUSE");

    return 0;
}

else if (y!=16);
{
while(x>0)
{
 tab[ile]=x%y;
 x/=y;
 ile++;
}
for(int i=ile-1; i>=0; i--) cout<<tab[i];
cout<<endl;

 cin>>x;
 return 0;
}
}




Dziękuję za wszelką pomoc i wskazówki.
Początkujący z długim stażem :D
Ciągle się uczę :)
0

#0 Bot Reklamowy

  • Grupa: Reklama

#2 Użytkownik nie jest zalogowany   twono 

  • Nowy Uczestnik
  • Grupa: Czytelnicy
  • Postów 124
  • Rejestracja: 19-wrzesień 04

Napisano 09 styczeń 2011, 23:21

char znaki[25];
for (int i = 0; i <= 9; ++i) znaki[i] = i + '0';
for (int i = 10; i < 25; ++i) znaki[i] = i - 10 + 'A';

// zastapic stary kod takim
for (int i = ile - 1; i >= 0; --i) cout << znaki[tab[i]];

Reflection of fear makes shadows of nothing.
0

#0 Bot Reklamowy

  • Grupa: Reklama

#3 Użytkownik nie jest zalogowany   fernandez 

  • 150% normy
  • PipPipPip
  • Grupa: Ekspert
  • Postów 1947
  • Rejestracja: 12-wrzesień 05

Napisano 09 styczeń 2011, 23:24

zrob sobie tablice, gdzie bedziesz mogl sie odniesc do kazje z reszt:
char t[] = {0,1,2,3,4,5,6,7,8,9,A,B,C,... itd
i zamiast int'a wypisuj to co jest w tablicy t[reszta]


juz pomijam fakt ze deklarownie tablicy 1-elementowej a potem wypisywanie elementow poza jej zakresem nie jest dobrym pomyslem...
0

#0 Bot Reklamowy

  • Grupa: Reklama
Strona 1 z 1


Szybka odpowiedź

  

Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych


Zmień widoczność shoutboxa Shoutbox

wojtek0569  : (01 sierpień 2014 - 19:09) ..
wojtek0569  : (18 lipiec 2014 - 09:01) .
wojtek0569  : (06 lipiec 2014 - 18:21) Gorąco...
wojtek0569  : (17 czerwiec 2014 - 15:00) Proszę zaglądających o nie robienie bałaganu na forum! ;)
wojtek0569  : (17 czerwiec 2014 - 14:59) Dzisiaj znowu musiałem posprzątasz po spamerze.
wojtek0569  : (14 czerwiec 2014 - 10:19) Forum posprzątane z bieżącego spamu (14.06)
OldShaterhan  : (30 maj 2014 - 22:45) dobra, linki nie :D
OldShaterhan  : (30 maj 2014 - 22:45) [url="http://link.pl/"]URLe też[/url]
OldShaterhan  : (30 maj 2014 - 22:45) emotki w SB zaczęły działać? :o
OldShaterhan  : (30 maj 2014 - 22:45) Przydałoby się, ale trzeba by też Buszmena zaciągnąć do roboty... ;)
wojtek0569  : (30 maj 2014 - 22:35) I kwestia... czy sprzątamy dalej w starych tematach?
wojtek0569  : (30 maj 2014 - 22:34) @Old Zamknąłem jeden temat bo tam ciągle jest robiony spam w sygnach. Wchodzę co trzy dni i przeglądam wszystkie nowe posty i usuwam spam.
wojtek0569  : (30 maj 2014 - 21:49) Nie ;) No chyba że Oldowi. Zapadła jakaś decyzja w sprawie tych for i coś jest napisane w majowym KŚ a haw go nie mam o Old i Zielony na przekór nie chcieli mi powiedzieć :D
dawido90  : (28 maj 2014 - 15:33) zapał się kończy? :)
wojtek0569  : (27 maj 2014 - 14:38) Bo ja usuwam tylko nowy spam...
wojtek0569  : (27 maj 2014 - 14:37) @Old To mamy sprzatać dalej czy nie?
wojtek0569  : (27 maj 2014 - 14:32) Ludzie nie róbcie tyle spamu!
wojtek0569  : (23 maj 2014 - 19:34) Ah...
OldShaterhan  : (16 maj 2014 - 09:54) nie patrzałem na to
wojtek0569  : (13 maj 2014 - 14:25) @Old Usunąłem trochę dzisiejszego spamu
Rozszerz pole shoutboxa

DIGDIP