zużycie pamięci

0

Witam
Poszukuję sposobu na duże zmniejszenie użycia pamięci tego kodu
http://4programmers.net/Pastebin/3420

0

Uzywaj 4 bitow do zapisu cyfry, nie 8.

0

Dzięki, dał byś jakiś link do przeczytania?

0
vector<bool>?
0

O czym? Zrobienie tego jest serio proste.

0 - 0000
1 - 0001
2 - 0010
3 - 0011
4 - 0100
5 - 0101
6 - 0110
7 - 0111
8 - 1000
9 - 1001

Do tego robisz jakas klase, ktora opakowuje operacje wyciagania tych liczb z charow, podmieniasz to z obecnym stringiem i gotowe.

0

czyli zamienić liczbę na binarną i ją przekazać do funkcji

0

no_name, mimo wszystko nie rozumiem twojego rozwiązania, przecież podanie ciągu binarnego do tej funkcji da zły wynik

0

tutaj chodzi o liczby, rzędu 50000 cyfr, więc typy liczbowe nie wchodzą w gre

0

Jak ktoś jest w stanie dokładniej wytłumaczyć sposób no_name to proszę o priv

0

Nie wiem zbytnio czego nie rozumiesz.
#Robisz sobie typ, ktory trzyma wewnetrznie jakis bitset/tablice charow/whatever.
#W kazdy jeden bajt wkodowujesz 2 liczby (1 gornej czesci oktetu, 2 w dolnej czesci oktetu)
#Definiujesz potrzebne ci operacje arytmetyczne
#Modyfikujesz swoja funkcje, zeby korzystala z nowego typu.

2

Nie lepiej zrobić to w innym systemie liczbowym? (najlepiej jakiś istniejący bignum, np GMP)
Będzie wydajniej i zużycie pamięci będzie dużo mniejsze.
http://www.wolframalpha.com/input/?i=log%282^64%2C+10^50000%29

0

no_name wydaję mi się jednak, że zrobienie tego twoim sposobem, zużyje więcej pamięci.

0

a mogę jakoś zamienić unsigned char na bity?

0

c >> 4
i
c & 0x0F

0

Jednak zostanę przy tym sposobie co mam, jednak staram się jakoś zmienić algorytm, aby nie wychodził mi poza zakres tablicy na końcu mnożenia [z-1] - if nie wchodzi w grę bo za bardzo opóźni program
http://4programmers.net/Pastebin/3427

1 użytkowników online, w tym zalogowanych: 0, gości: 1