zmienna o bardzo duzym rozmiarze

dział ogólny

Re: zmienna o bardzo duzym rozmiarze

Nowy postprzez polymorphism » środa, 18 lutego 2009, 18:47

Akurat tam go nie ma 8-)
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    NieznanyNieznana

Re: zmienna o bardzo duzym rozmiarze

Nowy postprzez Cyfrowy Baron » środa, 18 lutego 2009, 21:39

Raczej nie, dla __int64 maksymalnie da się obliczyć silnię dla 20 (20!=2432902008176640000, max dla __int64 to 9223372036854775807)


Fakt! Nie przeliczałem tego pisemnie, tylko oparłem się na wyniku wygenerowanym przez program, a że wyskoczyła liczba całkowita to uznałem, że jest prawidłowa, ale przy n = 21 otrzymujemy już wynik ujemny, więc nieprawidłowy:

W funkcji silnia argument jest typu __int64, nastąpi konwersja int -> __int64. Gdzie jest błąd?


Szczerze przyznaję - spekulowałem, uznałem, że skoro przy zmiennej __int64 uzyskał n < 13, to musi być błąd w przekazywaniu do funkcji zmiennej 32-bitowej zamiast 64 bitowej, niemniej n nie jest liczbą 64-bitową, więc rzeczywiście nie stanowi to problemu.

Zastanawiające jest dla mnie dlaczego przy n = 39 funkcja zwraca liczbę całkowitą dodatnią...
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Poprzednia strona

  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 10 gości