Zmienna typu całkowitego bez ograniczenia wartości
Ostatnio zmodyfikowano 2013-01-04 05:36
Berux Temat założony przez niniejszego użytkownika |
Zmienna typu całkowitego bez ograniczenia wartości » 2013-01-02 21:43:58 Mam pytanie, a mianowicie czy istnieje typ zmiennej bez limitu wartości. Np. typ int - ma wartość od -2'147'483'648 do 2'147'483'647 |
Proszę o pomoc i z góry dzięki. |
|
unimator |
» 2013-01-02 22:31:22 Typ long ma 64 bity (zakres od -2^63 do 2^63-1). Jak potrzebujesz jeszcze większych liczb to możesz stworzyć np. jakąś klasę i zamieniać liczby na ciągi znaków i na nich dokonywać działań. |
|
Savail |
» 2013-01-02 22:47:19 tak dla uściślenia to typ long long ma rozmiar 64 bitów a long 32 :) |
|
Elaine |
» 2013-01-02 23:30:53 Tak dla uściślenia, wszystkie typy całkowite mogą równie dobrze mieć po 72 bity. |
|
Berux Temat założony przez niniejszego użytkownika |
» 2013-01-03 15:15:17 Dziękuję za odpowiedzi i sory, że nie odpisywałem, ale nie mogłem. A więc jest to mi potrzebne do obliczania silni. Dałem typ unsignet long long, ale nie wystarcza to na obliczanie silni ze stu. 100! = 9.33262154 × 10157 (kalkulator google xD). Co do tych ciągów znaków to nie wiem jak miałbym wykonywać obliczenia na typie string. |
|
m4tx |
» 2013-01-03 16:24:41 100! = 9.33262154 × 10157 |
Jesteś pewien? ;) |
|
kubawal |
» 2013-01-03 16:40:24 w kalkulatorze google wychodzi: 100! = 9.33262154 × 10157 |
|
Savail |
» 2013-01-03 17:39:24 @tomczyk Aby to wykonać musisz wzorować się na zwykłym mnożeniu pisemnym. Stwórz sobie 2 stringi lub tablice char(chociaż wygodniej chyba będzie używać stringów). W 1. stringu będziesz przechowywał aktualny wynik a w drugim kolejną liczbę silni przez którą musisz przemnożyć. I tak jak w pisemnym mnożeniu kolejne elementy drugiego stringa przemnażasz przez elementy pierwszego, sumujesz i wynik zapisujesz do pierwszego stringa. Niezbędne będzie też wykorzystanie konwersji z char na int i na odwrót. Musisz też mieć jakąś zmienną żeby przechowywać resztę z mnożenia która trzeba przesunąć dalej. Jest to trochę czasochłonne ale zawsze to jeden ze sposobów :P
@Iname W jaki sposób?:) |
|
« 1 » 2 |