Przesunięcie w systemie binarnym
Ostatnio zmodyfikowano 2016-12-08 20:56
CCbolt Temat założony przez niniejszego użytkownika |
Przesunięcie w systemie binarnym » 2016-12-05 13:16:35 Mam problem z przesunięciem przy dodawaniu liczb binarnych dwie liczby czy trzy nie stanowią problemu, dodawanie zreszta robię na zasadzie sumowania i dodawania kolejnej liczby, dłuższe ale proste. Problem pojawił się przy mnożeniu większej ilości liczb, na samym końcu muszę je zsumować no i sposób w jaki ja sumuję się do tego nie nadaje.
Może ktoś mi objaśnić przesunięcia gdy mamy większą ilość liczby ( dwie jedynki to 10, 1+1+1 =11, 1+1+1+1=100 kumam ale przy zapisie się gubię ) i bez stawiania X jedynek w następnym rzędzie?
np na 111 + 101 + 111 + 111 + 111 + 101. |
|
mateczek |
» 2016-12-05 14:53:15 A masz jakiś wyraźny powód by bujać się z przesunięciami ?? I takim dodawaniem ?? Nie możesz po prostu napisać funkcji, która string binarny skonwertuje Ci do liczby int?? Inaczej mówiąc chodzi funkcję, która poprawnie wczyta ci liczbę int zapisana w postaci stringa w postaci binarnej. #include <iostream> #include <string>
using namespace std;
int strToBin( string l ) { int liczba = 0; for( size_t i = 0; i < l.size(); i++ ) { liczba =( liczba << 1 ) +( l[ i ] - '0' ); } return liczba; }
string intToBinStr( int liczba ) { string napis { "" }; while( liczba ) { bool cyfra = liczba & 1; napis.insert( napis.begin(), cyfra + '0' ); liczba = liczba >> 1; } return napis; }
int main() { string bin1, bin2; cin >> bin1 >> bin2; int liczba1 = strToBin( bin1 ); int liczba2 = strToBin( bin2 ); cout << intToBinStr( liczba1 * liczba2 ) << endl; }
możesz również skorzystać z klasy std::BitSet |
|
CCbolt Temat założony przez niniejszego użytkownika |
» 2016-12-08 15:22:30 Tak, koło z dyskretne ale już to ogarnąłem. |
|
mateczek |
» 2016-12-08 16:03:48 koło z dyskretnej i bujać się z dodawaniem na stringach?? :P Toć komputerowi "ganz egal" jakie liczby dodaje. Czy jest to: 10(dex), A(hex), 1010(bin) w pamięci komputera wyglądają tak samo :) notabene ALU (np. sumator) w procku działa na liczbach binarnych(ma to natywnie i w dodatku sprzętowo). To tak jakbyś uczył ojca jak się dzieci robi:P |
|
CCbolt Temat założony przez niniejszego użytkownika |
» 2016-12-08 16:46:26 Życie, powiem ci że się przydaje. Inaczej patrzę na niektóre sprawy. Matematyka, algebra liniowa i grafy na pewno się przydadzą. |
|
mateczek |
» 2016-12-08 20:56:41 spoko. Ja też robiłem projekty sumatora binarnego w technikum tyle, że na bramkach. i chyba tylko 4 bitowy. Wiedzieć trzeba jak się to robi. Tylko chciałem zwrócić uwagę, że system liczb w informatyce nie ma znaczenia. Bo liczba i tak wygląda tak samo. Cała zabawa polega na tym by ją poprawnie do pamięci wczytać. A jak się już znajdzie w pamięci to procesor sam se ją doda |
|
« 1 » |