binarny na dziesietny tablica znakowa
Ostatnio zmodyfikowano 2014-11-22 15:52
bolones Temat założony przez niniejszego użytkownika |
binarny na dziesietny tablica znakowa » 2014-11-22 13:54:00 Witajcie! Mam napisac funkcje która będzie zamieniać liczbe w systemie binarnym na dziesiętny, przy pomocy tablicy znakowej. Napisałem tylko tyle: void bin2dec()
{ char tab[ 300 ]; int n; cout << wprowadz liczbe w systemie binarnym << endl; cin >> tab; }
i w sumie to nie mam pomyslu co zrobic dalej, jakieś sugestie ?:) |
|
NopeDotAvi |
» 2014-11-22 14:23:43 po co Ci tablica charow? Użyj stringa. To jest moja iplementacja void binToDec() { int result = 0; int podstawa = 2; int potega = 0; int pomocnicza = 0; string liczbaBinarna; cout << "Wprowadz liczbe binarna "; cin >> liczbaBinarna; for( int i = liczbaBinarna.size() - 1; i >= 0; --i ) { pomocnicza =( liczbaBinarna[ i ] - 48 == 0 ) ? 0 : 1; cout << "Pomocnicza: " << pomocnicza << " Potega: " << potega << endl; if( pomocnicza != 0 ) result +=( pow( podstawa, potega ) ); potega += 1; } cout << result << endl; }
jak coś nie wiesz to poytaj, sprawdziłem i wygląda na to że działa. |
|
MrThoruss |
bin 2 dec » 2014-11-22 14:26:50 Witam , ja też aktualnie nad tym pracuję i udało mi się stworzyć coś takiego void bintodec() { string binarny; cout << "Podaj liczbe w systemie binarnym: "; cin >> binarny; int binaryl = binarny.length(); int wynik = 0; for( int i = 0; binaryl >= 0; i++ ) { binaryl--; if( binarny[ binaryl ] == '1' ) { wynik = wynik + pow( 2, i ); } else if( !( binarny[ binaryl ] == '1' || '0' ) ) { cout << "Wpisana wartosc nie zostala podana w postaci binarnej" << endl; break; } } cout << "Liczba " << binarny << " w systemie dziesietnym to: " << wynik << endl; }
program przelicza liczby w systemie binarnym na liczby w systemie dziesiętny, tylko nie wiem czemu nie sprawdza, czy podana liczba posiada poprawny zapis 0-1 , nie chciałem tworzyć nowego tematu dlatego pytam o to tu. |
|
NopeDotAvi |
» 2014-11-22 14:35:45 bo masz zły warunek do sprawdzania czy jest poprawna. |
|
MrThoruss |
» 2014-11-22 14:37:55 A mógłbyś pokazać jak taki warunek powinien wyglądać ? |
|
NopeDotAvi |
» 2014-11-22 14:44:39 poszukaj lekcji o nazwie "operacje logiczne" wyciągnij z niej ile się da |
|
MrThoruss |
» 2014-11-22 15:52:26 Coś wykombinowałem i teraz sprawdzanie czy liczba jest w systemie binarnym działa poprawnie oto kod: string binarny; cout << "Podaj liczbe w systemie binarnym: "; cin >> binarny; int binaryl = binarny.length(); int wynik = 0;
for( int i = 0; binaryl >= 0; i++ ) { binaryl--; if( binarny[ binaryl ] == '1' ) { wynik = wynik + pow( 2, i ); } if( binaryl >= 0 ) { if( binarny[ binaryl ] != '1' && binarny[ binaryl ] != '0' ) { cout << "Wpisana wartosc nie zostala podana w postaci binarnej" << endl; break; return 0; } } }
cout << "Liczba " << binarny << " w systemie dziesietnym to: " << wynik << endl;
}
|
|
« 1 » |