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

Dec to bin

Ostatnio zmodyfikowano 2015-01-13 17:47
Autor Wiadomość
increase
Temat założony przez niniejszego użytkownika
Dec to bin
» 2012-11-10 10:39:02
Cześć,
szukam rozwiązania problemu zmiany zmiennej typu int dziesiętną na zmienną typu int zapisaną binarnie.
Otóż wiem jak to zrobić jeżeli chodzi o wypisywanie na ekranie ale nie wiem jak zapisać to i dalej korzystać z niej w programie.
P-68914
cyklopek11
» 2012-11-10 11:42:11
Jeśli chodzi Ci o to, że chcesz liczbę całkowitą (czy jakąkolwiek inną) mieć w programie jako ciąg zer i jedynek, to napisz funkcję, która zamienia int na std::string. Oczywiście będziesz miał swoje zera i jedynki ale żadnych operacji arytmetycznych na "takiej zmiennej" nie przeprowadzisz.. Chyba, że napiszesz sobie własną klasę, która będzie miała przeładowane operatory arytmetyczne i będzie mogła pracować na ciągach zero-jedynkowych zmiennych Twojej klasy. Tylko po co to wszystko ?
P-68919
Savail
» 2012-11-10 11:50:38
Z tego co mi się wydaje to nie ma sposobu aby zapisać zmienną typu int w systemie binarnym chyba że to co powiedział Cyklopek, jednak jest to trochę pracochłonne zajęcie... Ale jeśli chcesz operować na zmiennej typu int w systemie binarnym to wystarczy znajomość operatorów bitowych, np: sumy bitowej, części wspólnej bitowej, negacji, przesunięcia bitów w lewo/prawo itp. Tak naprawdę te zmienne i tak wewnątrz systemu zapisane są jako ciąg zer i jedynek dlatego możesz traktować je jako zapisane w systemie binarnym, chociaż wyświetlać będą ci się w dziesiętnym. Więc zwykłe dodawanie dwóch zmiennych typu int: 5 + 4 = 9 wewnątrz systemu i tak będzie liczone w ten sposób: 101 + 100 = 1001 (w systemie binarnym)
P-68921
increase
Temat założony przez niniejszego użytkownika
» 2012-11-10 12:07:44
Chodzi o to, że zmienna typu int np. a=2
f(a)=10
P-68922
Savail
» 2012-11-10 12:11:03
tak,liczba 2 = 10 w systemie binarnym. I przy używaniu operatorów bitowych liczba właśnie traktowana jest jako zapisana w systemie binarnym
P-68923
increase
Temat założony przez niniejszego użytkownika
» 2012-11-10 12:40:05
Chodzi o to, że do programu potrzebuje funkcji zamieniającej z dec na bin.
P-68924
Savail
» 2012-11-10 12:47:42
A do czego potrzebujesz koniecznie mieć w programie liczbę zapisaną binarnie? Napisałeś, że wyświetlić binarnie potrafisz a do operacji arytmetycznych napisałem wyżej że możesz użyć zwykłych operatorów i operatorów bitowych. Jeśli koniecznie chcesz mieć typ zmiennej przechowującej liczby zapisane binarnie to jedynym rozwiązaniem jest dla ciebie stworzenie własnej klasy, przeładowanie jej operatorów itp tak jak to napisał ci Cyklopek...
P-68925
jegor377
» 2015-01-12 17:32:50
C/C++
string DecToBin( UINT64 value )
{
    string p, p2;
    while( value > 0 )
    {
        if( value % 2 > 0 ) p += "1";
        else p += "0";
       
        value = value / 2;
    }
    for( int a = p.length() - 1; a >= 0; a-- ) p2 += p[ a ];
   
    return p2;
}

long double BinToDec( string value )
{
    long double ret = 0;
    string p;
    for( int a = value.length() - 1; a !=- 1; a-- )
    {
        p = value[ a ];
        ret += atoi( p.c_str() ) * pow( 2, value.length() -( a + 1 ) );
    }
    return ret;
}

dodajesz nagłówek #include <windows.h> i #include <string> :)

PS chciałem, by program potrafił pracować na potężnych cyfrach :)
P-124738
« 1 » 2
  Strona 1 z 2 Następna strona