Zmienna typu całkowitego bez ograniczenia wartości
Ostatnio zmodyfikowano 2013-01-04 05:36
jsc |
» 2013-01-03 18:01:53 @Up Musisz wziąć poprawkę na to, że nie zawsze wyniki pośrednie zmieszczą się w nawet największych intach, więc takie liczby trzeba "ciąć" na fragmenty strawne dla procesora i to na nich operować. |
|
m4tx |
» 2013-01-03 18:07:23 Normalnie, wielkości te zależą od kompilatora, systemu, platformy, itd... |
|
Mrovqa |
» 2013-01-03 19:50:09 Co do dużych liczb to nie radzę bawić się w stringi - pamięciożerne i wolne. Na main.edu.pl w kursie algorytmiki jest tzw. własna arytmetyka - radzę tam zajrzeć :) Największe wpływ na wielkość zmiennych ma architektura. Na x86 mimo tego, iż np. char ma 1 bajt to na stosie i tak zostanie dopełniony do 4 bajtów (podobnie jest przy strukturach i tablicach), bo procesor po prostu szybciej adresuje komórki o adresie podzielnym przez 4. System i tak musi działać na danej architekturze, ale można pobawić się w zmianę wielkości zmiennych. Bodajże w pythonie nie ma czegoś takiego jak Integer (Over|Under)flow - zmienna jest po prostu w trakcie programu "rozciągana w pamięci" (dynamicznie doalokowanie pamięci). Jeżeli chodzi o kompilator - on praktycznie musi się przystosować do systemu na jakim działa, ale jego stosunek do systemu jest taki, jak systemu do architektury - może sobie wygenerować kod, który - jak miałeś za przykład pythona - będzie automatycznie powiększał zmienne. Dlaczego mimo to, iż to jest możliwe, to tego nie ma? Jest to po prostu niepotrzebne i mniej wydajne (więcej danych = dłuższy czas ich przetwarzania). |
|
withelm |
» 2013-01-04 05:36:33 |
|
1 « 2 » |