
deklaracja liczby w c++
#3
Napisano 24 marzec 2007 - 13:45
1) Skorzystaj z 64-bitowego kompilatora C++, wtedy zwykły typ "long int" będzie wystarczająco duży, aby operować na tak dużych liczbach.
2) Jeśli nie chcesz zmieniać kompilatora, użyj zmiennoprzecinkowego typu "double", który bez utraty precyzji może przechowywać liczby całkowite maks. 52-bitowe. Spokojnie wystarczy to, aby zapisać w nim wspomnianą liczbę. Tu masz przykład programu, który powinien zadziałać we większości współczesnych kompilatorów C++. Zwracam uwagę na konieczność oznaczania dużych liczb z kropką i zerem na końcu, w przeciwnym razie 32-bitowy kompilator nie poradzi sobie z takimi liczbami. Przy wyświetlaniu liczby program pominie jednak kropkę i zero.
#include
using namespace std;
int main()
{
double zmienna = 4294967296.0;
cout.setf(ios::fixed, ios::floatfield); // wyświetlanie liczb bez wykładnika
cout << zmienna << endl;
return 0;
}
#4
Napisano 24 marzec 2007 - 13:57
#5
Napisano 24 marzec 2007 - 18:40

GMP na ten przyklad jest optymalizowana jezeli chodzi o szybkosc obliczen i nie sadze, zeby dalo sie latwo samemu zrobic to szybciej(nie mowie, ze to nie mozliwe)
Zreszta, jak komus sie chce to moze zrobic eksperyment, GMP mozna sprawdzic 'onlajn':
http://gmplib.org/index.html#TRY
proponuje np 99999!
powodzenia i pozdrawiam serdecznie

#6
Napisano 24 marzec 2007 - 20:26

Jeśli Cię to interesuje, poczytaj sobie np. na temat algorytmu dzielenia binarnego. Kiedyś rozpisywałem się na ten temat na forum. Jeśli operujesz na liczbach większych niż 2^N, gdzie N to szerokość słowa procesora, proste operacje arytmetyczne na tych liczbach muszą składać się z wielu instrukcji procesora. Dla przykładu, żeby emulować 64-bitowe operacje arytmetyczne na 32-bitowym procesorze, za dodawanie i odejmowanie odpowiedzialne będą min. dwie instrukcje zamiast jednej, za mnożenie kilkanaście instrukcji zamiast jednej, a za dzielenie kilkadziesiąt lub nawet kilkaset instrukcji zamiast jednej (algorytm zakłada działanie w pętli). Żadna, nawet najlepsza optymalizacja tego nie zmieni.
#7
Napisano 02 wrzesień 2013 - 12:15
Witam
Czy ktoś mógłby łopatologicznie tak jak tu:
http://cpp0x.pl/kurs...lamy-Allegro/64
napisać prosto i zwięźle jak w tej bibliotece gmp dodawać odejmować przechowywać mnożyć dzielić i pierwiastkować duże liczby.
jak ktoś wie to prosił bym o pomoc czy w tej bibliotece da się po pierwiastkowaniu dużej liczby odciąć (nie zaokrąglić) wszystko po przecinku potrzebowałbym czegoś takiego z góry dzięki będę chciał to napisać na linuksie ale żeby to zainstalować muszę mieć jakiś działający kodzik.
#11
Napisano 09 wrzesień 2013 - 14:02
czyli co mam zrobić już prawie napisałem ten program biorę np. 1 0 0 0 0 podnoszę pisemnie do kwadratu sprawdzam czy jest większa od liczby np przykładową mam 1 2 3 4 5 6 7 8 9 i jeśli jest mniejsza to zwiększam pierwszą cyfrę dopuki nie będzie większa potem zmniejszam ją o jeden i to samo robię z drugą cyfrą i tak aż dojdę do ostatniej cyfry to będzie najmniejsza liczba całkowita która podniesiona do kwadratu da mniejszą lub równą 1 2 3 4 5 6 7 8 9. taki zamysł ogólny czy coś prościej idzie zrobić
#13
Napisano 21 październik 2014 - 00:08
Jak masz problem z C++ to warto się wspomuć jakimś kursem który pomoże Tobie zrozumieć te wszystkie zawiłości w programie. Chwila szukania i prosze bardzoz http://strefakursow....gramowanie.html
masz tam dostępny kurs C++. Z tego co widzę te kursy stoją wysoko w rankingu, więc warto się im przyjżeć
#14
Napisano 21 październik 2014 - 19:23
Po roku czasu czekania na twoją radę to chyba dał sobie spokój. Jak mi sie podobaja takie posty ni z gruchy ni z pietruchy.
Tak na marginesie to to forum całkiem padło.
Jak masz problem z C++ to warto się wspomuć jakimś kursem który pomoże Tobie zrozumieć te wszystkie zawiłości w programie. Chwila szukania i prosze bardzoz http://strefakursow....gramowanie.html
masz tam dostępny kurs C++. Z tego co widzę te kursy stoją wysoko w rankingu, więc warto się im przyjżeć
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych