#programowanie #cpp #cplusplus
Jak ogarnąć przepełnienia zmiennych? Np. przypisuję do short dużą liczbę i chcę żeby tam znalazło się maksimum zakresu, a nie jakaś inna liczba, zależnie od tego jak mocno jest przepełniona.
Patrzę w te internety i słabo, więc na razie ogarniam to przez kilka if'ów, ale wydaje się mi to bez sensu
Po co kod się ma wykonywać 2 razy i jako że mam dłuższe nazwy zmiennych i dłuższe równania to powstają mi molochy w tych ifach.
Jak ogarnąć przepełnienia zmiennych? Np. przypisuję do short dużą liczbę i chcę żeby tam znalazło się maksimum zakresu, a nie jakaś inna liczba, zależnie od tego jak mocno jest przepełniona.
Patrzę w te internety i słabo, więc na razie ogarniam to przez kilka if'ów, ale wydaje się mi to bez sensu
if (a+b*c/d > 32767)x = 32767;elsex = a+b*c/d;Po co kod się ma wykonywać 2 razy i jako że mam dłuższe nazwy zmiennych i dłuższe równania to powstają mi molochy w tych ifach.
- Najlepsze
- Wszystkie komentarze






Albo zapisz tylko najstarszy bajt. Albo zrób >>(logicznie w prawo) na zmiennej aż się zmieści?
short, to najprościej będzie powiększyć zakres
sizeof(short) < sizeof(int). Jeśli tak jest, to prosta sprawa, wystarczy, ƶe porównasz pierw obliczony i zapisany
Komentarz usunięty przez autora
A pozostałe fałszują mi wynik, równie mocno, co zwykłe przypisanie zbyt dużej liczby.
Bo akurat ten typ spełnia założenia mojej inżynierki w tym konkretnym przypadku.
Ale miałem taką cichą nadzieję na jakąś bardzo sprytną funkcje, bo taki przypadek wydaje mi się dość łatwy do zaistnienia czyli sprytna funkcja by się przydała.
Tak czy siak, dzięki wszystkim.
boost::numeric_cast