Zamiana liczba dziesiętnych na binarne

Awatar użytkownika
grzywatuch
Użytkownik
Użytkownik
Posty: 363
Rejestracja: 6 sie 2008, o 10:06
Płeć: Mężczyzna
Lokalizacja: Tuchów
Podziękował: 8 razy
Pomógł: 42 razy

Zamiana liczba dziesiętnych na binarne

Post autor: grzywatuch »

potrzeba mi takie programik, co w pętli bedzie dzielił dana liczbe przez 2 i spisywał reszty z tych dzieleń do tablicy, a później wyczytał te reszty w odwrotnej kolejności. Ja narazie mam taki program co obliczy reszte z dzielenia jakies liczby przez 2:

Kod: Zaznacz cały

# include <iostream>
int main ()
{
    using namespace std;
int x,y=2;
cout<<"Podaj liczbe"<<endl;
cin>>x;
cout<<"Reszta z dzielenia "<<x<<" przez "<<y<<" wynosi "<<x%y<<endl;
     

    cin>>x;
    return 0;
}
Ale dalej nie wiem jak to w pętle zapisać zeby kolejny raz liczbe dzielilo przez 2 az sie skończy.
matshadow
Użytkownik
Użytkownik
Posty: 941
Rejestracja: 17 gru 2007, o 21:48
Płeć: Mężczyzna
Lokalizacja: Kingdom Hearts
Podziękował: 6 razy
Pomógł: 222 razy

Zamiana liczba dziesiętnych na binarne

Post autor: matshadow »

Kod: Zaznacz cały

int tab[100000]={0};
int ile=0;
int x;
cin>>x;
while(x>0)
{
      tab[ile]=x%2;
      x/=2;
      ile++;
}
for(int i=ile-1; i>=0; i--) cout<<tab[i];
cout<<endl;
Nie kompilowałem, na oko wygląda dobrze
Awatar użytkownika
grzywatuch
Użytkownik
Użytkownik
Posty: 363
Rejestracja: 6 sie 2008, o 10:06
Płeć: Mężczyzna
Lokalizacja: Tuchów
Podziękował: 8 razy
Pomógł: 42 razy

Zamiana liczba dziesiętnych na binarne

Post autor: grzywatuch »

No fajnie chodzi tylko jedno sie musze ciebie zapytać:

czemu tą tablice tak zadeklarowałeś :

Kod: Zaznacz cały

int tab[100000]={0}
nie bardzo to czaje,

No i jeszcze które komenda robi ze ona te liczby z tablicy wypisuje od tyłu?? (Pytam bo musze to wiedziec bo na infie musze babce wszystko wytłumaczyć xD, a najlepsze jest to ze z tablic to tylko bralismy jak dodać elementy do tablicy i jak je potem wypisac a tu nagre z takim czyms dla mojej grupy wyskoczyła xD)
peterp
Użytkownik
Użytkownik
Posty: 30
Rejestracja: 27 sie 2008, o 13:29
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 3 razy
Pomógł: 5 razy

Zamiana liczba dziesiętnych na binarne

Post autor: peterp »

Ten zapis

Kod: Zaznacz cały

int tab[100000]={0}
to inicjalizacja tablicy zerami (bez tego przypisania tablica miałaby jakieś przypadkowe wartości).
A tutaj masz wypisywanie "od tyłu":

Kod: Zaznacz cały

for(int i=ile-1; i>=0; i--) cout<<tab[i];
zmienna i przyjmuje wartość ile-1 i w każdym kroku pętli jest zmniejszana. Wewnątrz pętli wypisywane są wartości z tablicy (od największej, czyli od końca, bo i jest największe, a potem maleje do zera).
Powodzenia:)
ODPOWIEDZ