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  : (17 grudzień 2014 - 16:05) No i znowu atak botów :(
dawido90  : (14 grudzień 2014 - 08:25) również pozdrawia ;)
Uno  : (09 grudzień 2014 - 12:53) I ja pozdrawiam :)
Pretender  : (06 grudzień 2014 - 21:24) pozdrawiam dziadków :))))
Pretender  : (06 grudzień 2014 - 21:24) elitarne forum przestało istniec ;)
Pretender  : (06 grudzień 2014 - 21:24) nudy nudy :))) nic sie nie zmieniło
wojtek0569  : (04 grudzień 2014 - 22:19) Bywa :D
rzeznia22  : (04 grudzień 2014 - 09:57) Nie wiedziałem, że tu jeszcze zajrzę ;) Masa czasu...
rzeznia22  : (04 grudzień 2014 - 09:51) ohoho, widzę jeszcze są ludzie ze starej ekipy! :D
wojtek0569  : (17 październik 2014 - 19:19) Spamerzy generują ruch na forum :D
tomek10861  : (10 październik 2014 - 20:54) Że też ktoś płaci za serwer
tomek10861  : (10 październik 2014 - 20:54) Lat minęło a forum dalej istnieje :)
wojtek0569  : (10 październik 2014 - 18:29) :) Ho!
Grejpfrut14  : (09 październik 2014 - 19:10) hoho
wojtek0569  : (08 październik 2014 - 15:37) OGŁOSZENIE: Ludzie! Nie odkopujcie tematów które maja po 2lata!
wojtek0569  : (08 październik 2014 - 15:36) Podobno do końca roku fora moja być połączone :)
Ferrari  : (04 październik 2014 - 23:48) Tylko pozycjonerzy ratują to forum i piszą posty :lol:
dawido90  : (29 wrzesień 2014 - 21:19) ja 'zaledwie' 7
dawido90  : (29 wrzesień 2014 - 21:17) Już ponad 10 lat :D
EnDrJu_G  : (29 wrzesień 2014 - 17:42) Tylko ten nick mógłbym zmienić :D
Rozszerz pole shoutboxa

DIGDIP