Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

konwersja char tablica[] na int

Ostatnio zmodyfikowano 2011-12-12 20:11
Autor Wiadomość
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.
C/C++
#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?
P-45551
pekfos
» 2011-12-12 18:16:46
kontener std::bitset konwertuje to dużo prościej.
P-45555
RazzorFlame
» 2011-12-12 18:35:55
Jesli chodzi ci powiedzmy o to zeby otrzmac np numer danego klawisza albo jego znak to patrz:

C/C++
#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;
}
P-45557
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ą.
P-45558
pekfos
» 2011-12-12 19:15:31
kontener std::bitset<>. ma łatwe w użyciu metody do konwersji.
P-45562
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?

C/C++
#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" );
}
P-45563
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.
P-45565
CTRL85
Temat założony przez niniejszego użytkownika
» 2011-12-12 20:11:08
rozmiar1 = rozmiar2 = liczba_binarna.length() - 1;

Działa.
P-45567
« 1 »
  Strona 1 z 1