[C++] Zamiana z dziesiętnego na binarny i zapis do zmiennej

agatap2
Użytkownik
Użytkownik
Posty: 9
Rejestracja: 5 maja 2012, o 18:52
Płeć: Kobieta
Lokalizacja: Ozorków

[C++] Zamiana z dziesiętnego na binarny i zapis do zmiennej

Post autor: agatap2 »

Witam,
potrzebny mi jest kod zamieniający duże liczby z systemu dziesiętnego na binarny w C++. W internecie jest mnóstwo takich programów, ale nie znalazłam takiego, który zapisywałby wynik do jakiejś zmiennej. Wszystkie wypisują kolejne reszty z dzielenia i tyle.
Liczę na waszą pomoc!
Henryhenry
Użytkownik
Użytkownik
Posty: 11
Rejestracja: 9 cze 2012, o 12:40
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 1 raz
Pomógł: 1 raz

[C++] Zamiana z dziesiętnego na binarny i zapis do zmiennej

Post autor: Henryhenry »

Kod: Zaznacz cały

long long co;
string wynik = "";
do{
if ((co mod 2) == 1)
wynik = '1'+wynik;
else
wynik = '0'+wynik;
co /= 2;
}while (co != 1)
pisane na szybko, ale powinno działać. Pisząc w C++ mod zastąp znakiem procenta
agatap2
Użytkownik
Użytkownik
Posty: 9
Rejestracja: 5 maja 2012, o 18:52
Płeć: Kobieta
Lokalizacja: Ozorków

[C++] Zamiana z dziesiętnego na binarny i zapis do zmiennej

Post autor: agatap2 »

Poprawiłam na końcu while(co!=0) i działa Dzięki wielkie.
Możesz mi jeszcze powiedzieć jak zmienić teraz ten string na int?
witekkq
Użytkownik
Użytkownik
Posty: 145
Rejestracja: 16 lis 2007, o 09:06
Płeć: Mężczyzna
Lokalizacja: Gniezno
Podziękował: 2 razy
Pomógł: 27 razy

[C++] Zamiana z dziesiętnego na binarny i zapis do zmiennej

Post autor: witekkq »

Kod: Zaznacz cały

#include <sstream>
+

Kod: Zaznacz cały

int i;
istringstream iss(wynik);
iss >> i;

cout<<endl<<i;

przy czym największa liczba jaką może zostać wpisana do inta z uwagi na pojemność to 1 111 111 111
czyli 1023
agatap2
Użytkownik
Użytkownik
Posty: 9
Rejestracja: 5 maja 2012, o 18:52
Płeć: Kobieta
Lokalizacja: Ozorków

[C++] Zamiana z dziesiętnego na binarny i zapis do zmiennej

Post autor: agatap2 »

Wszystko działa, jeszcze raz dziękuję.
Henryhenry
Użytkownik
Użytkownik
Posty: 11
Rejestracja: 9 cze 2012, o 12:40
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 1 raz
Pomógł: 1 raz

[C++] Zamiana z dziesiętnego na binarny i zapis do zmiennej

Post autor: Henryhenry »

Sposób ze streamem jest wygodny, ale praktyczniejszy jest chyba taki prosty kod:

Kod: Zaznacz cały

string co ...
int wynik = 0;
int mnoznik = 1;
for (int a = co.size() - 1; a >= 0; a--)
{
wynik += (co[a] - int('0'))*mnoznik;
mnoznik *= 2;
}

ODPOWIEDZ