konwersja char tablica[] na int
Ostatnio zmodyfikowano 2011-12-12 20:11
CTRL85 Temat założony przez niniejszego użytkownika |
konwersja char tablica[] na int » 2011-12-12 18:04:53 Witam! Mam problem - napisałem sobie mały konwerter liczb dziesiętnych na binarne. #include <iostream> using namespace std; int main() { int dziesietna = 0; char dwojkowa[ 30 ]; cout << "wpisz liczbe: "; cin >> dziesietna; itoa( dziesietna, dwojkowa, 2 ); cout << "W systemie dwojkowym: " << dwojkowa << "\n"; system( "PAUSE" ); return 0; } Zaznaczam, że jest to prosty programik, który pisałem dosłownie 5 minut. Jest w konsoli, ponieważ napiosałem go na potrzeby mojej gry. :) W czym mam problem? Jak skonwertować tablicę char na int (nie tablicę tylko normalną zmienną), ponieważ mam z tym problem? |
|
pekfos |
» 2011-12-12 18:16:46 kontener std::bitset konwertuje to dużo prościej. |
|
RazzorFlame |
» 2011-12-12 18:35:55 Jesli chodzi ci powiedzmy o to zeby otrzmac np numer danego klawisza albo jego znak to patrz: #include <iostream> #include <conio.h>
using namespace std;
int main() { char znak; int liczba; znak = getch(); liczba =( int ) znak; cout << liczba << endl; getch(); return 0; }
|
|
CTRL85 Temat założony przez niniejszego użytkownika |
» 2011-12-12 18:37:06 To jest konwerter dziesiętne->binarne
I potrzebuję nie zmienną na zmienną, tylko tablicę na zmienną. |
|
pekfos |
» 2011-12-12 19:15:31 kontener std::bitset<>. ma łatwe w użyciu metody do konwersji. |
|
CTRL85 Temat założony przez niniejszego użytkownika |
» 2011-12-12 19:20:34 a troche z innej beczki - zorbiłem konwerter - binarna->dziesiętna, ale zawsze podaje wynik 2 razy za duży.Gdzie jest błąd? #include <iostream> #include <string> #include <math.h> using namespace std; int main() { int dlugosc = 0; string liczba_binarna = ""; int rozmiar1 = 0; int rozmiar2 = 0; long double dziesietna = 0, dwa = 2; cout << "Podaj liczbe w systemie binarnym: "; cin >> liczba_binarna; rozmiar1 = rozmiar2 = liczba_binarna.length(); for( int i = 0; i < rozmiar1; i++ ) { if( liczba_binarna[ i ] == '1' ) dziesietna = dziesietna + pow( dwa, rozmiar2-- ); else rozmiar2--; } cout << "Wynik: " << dziesietna << "\n"; system( "PAUSE" ); } |
|
pekfos |
» 2011-12-12 19:23:11 błąd o jedynkę gdzieś masz. jeden znak za dużo = 1 bit w zapisie za dużo = wynik 2 razy większy. |
|
CTRL85 Temat założony przez niniejszego użytkownika |
» 2011-12-12 20:11:08 rozmiar1 = rozmiar2 = liczba_binarna.length() - 1; Działa. |
|
« 1 » |