Mnożenie vector'a bool

Mnożenie vector'a bool
0

mam dwa pojemniki typu deque<bool> oba tego samego rozmiaru

a w każdym nich ciąg zer i jedynek np
0000000011110111110111
0000000000000001011111

i teraz chciałbym dokonać mnożenia i aby wynik znalazł w trzecim pojemniku, też o tej samej długości, a liczby są takie że nigdy wynik mnożenia nie będzie wykraczał poza zakres więc nie trzeba się tym martwić że się nie zmieści.

satirev
  • Rejestracja:prawie 14 lat
  • Ostatnio:około 4 lata
2

Użyj bitset i operatora &.

0

wielkie dzięki działa, można zamknąć

0

hm, ale to jest iloczyn na poszczególnych bitach. A ja potrzebuję mnożenia normalnego 2 liczb binarnych. Jest od tego jakiś operator a jak nie ma to zamienić to na normalnego inta i wymnożyć i z powrotem na postać binarną?

MO
  • Rejestracja:około 10 lat
  • Ostatnio:4 dni
  • Lokalizacja:Tam gdzie jest (centy)metro...
0

Wyciągaj dane z kolejki i wsuwaj do zmiennej przez << lub >> które są operatorami przesunięcia bitowego w lewo lub prawo. Na końcu uzyskasz wartości które można mnożyć/dzielić/cokolwiek.. :-)


Każdy problem w informatyce można rozwiązać, dodając kolejny poziom pośredniości,z wyjątkiem problemu zbyt dużej liczby warstw pośredniości — David J. Wheeler
MarekR22
Moderator C/C++
  • Rejestracja:ponad 17 lat
  • Ostatnio:4 minuty
0
Świetny Szczur napisał(a):

mam dwa pojemniki typu deque<bool> oba tego samego rozmiaru

a w każdym nich ciąg zer i jedynek np
0000000011110111110111
0000000000000001011111

i teraz chciałbym dokonać mnożenia i aby wynik znalazł w trzecim pojemniku, też o tej samej długości, a liczby są takie że nigdy wynik mnożenia nie będzie wykraczał poza zakres więc nie trzeba się tym martwić że się nie zmieści.

Jak dużo masz tych bitów? przykład mieści się w 32 bitach, więc nadal odpowiedzią nadal może być bitset (to_ulong).


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
0

tak, zmieszczę się w unsigned long int ale mimo wszystko wydaje mi się to dziwny sposób żeby za każdym mnożeniem zamieniać to na inta i mnożyć na intach

spartanPAGE
  • Rejestracja:około 12 lat
  • Ostatnio:2 dni
0

Możesz też reprezentować to zwyczajnie jako liczbę.

MarekR22
Moderator C/C++
  • Rejestracja:ponad 17 lat
  • Ostatnio:4 minuty
0
Świetny Szczur napisał(a):

tak, zmieszczę się w unsigned long int ale mimo wszystko wydaje mi się to dziwny sposób żeby za każdym mnożeniem zamieniać to na inta i mnożyć na intach

Nie rozumiem co w tym dziwnego. IMO sam sobie utrudniasz zadanie.


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.