Co zwraca funkcja abs dla najbardziej ujemnej liczby?

0

Witam, mam następujące pytanie: Co zwraca funkcja abs() dla najbardziej ujemnej liczby? Natknąłem się na odpowiedź: "Największą możliwą ujemną liczbę w danym typie" ale jakoś nie jestem przekonany a przy sprawdzeniu w programie wychodzi mi zwykły moduł z tej liczby a tak chyba nie powinno być bo zakres.

0

Najlepiej będzie sprawdzić w dokumentacji danego języka programowania.

0

W dokumentacji jest tylko taka notka: "Return value The absolute value of n (i.e. |n|), if it is representable." tylko wtedy dlaczego wyświetla się normalnie skoro w przedziale mojego typu nie jest reprezentowalna http://en.cppreference.com/w/cpp/numeric/math/abs

1

Hmm, a może byś zwyczajnie sprawdził, jak to działa?
U mnie abs((-1)<<31) == ((-1)<<31). Kompilator GCC, Linux.

3

Przecież masz wyraźnie napisane, że jest UB, znaczy się może być różnie w zależności od kompilatora/parametrów kompilacji itd...

1 użytkowników online, w tym zalogowanych: 0, gości: 1