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!
[C++] Zamiana z dziesiętnego na binarny i zapis do zmiennej
-
- 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
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)
[C++] Zamiana z dziesiętnego na binarny i zapis do zmiennej
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?
Możesz mi jeszcze powiedzieć jak zmienić teraz ten string na int?
-
- 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
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
-
- 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
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;
}