Czytałem w wielu miejscach, że przepełnienie liczby całkowitej jest dobrze zdefiniowane w C, w przeciwieństwie do podpisanego odpowiednika.Pytanie dotyczące zachowania C dla niepodpisanego liczby całkowitej underflow
Czy to niedomiar jest taki sam?
Na przykład:
unsigned int x = -1; // Does x == UINT_MAX?
Dzięki.
Nie mogę sobie przypomnieć gdzie, ale czytałem gdzieś, że arytmetyczna na niepodpisanych typach całek jest modularna, więc jeśli tak było, to -1 == Mod UINT_MAX (UINT_MAX + 1).
Uważam, że termin "niedopełnienie" odnosi się tylko do liczb zmiennoprzecinkowych, gdzie nie można przedstawić liczb bardzo bliskich zeru. Liczby całkowite nie miałyby tego problemu. – WildCrustacean
@bde Zgadzam się, że jest to technicznie poprawne stwierdzenie, ale termin jest często przeciążany z powodu naruszenia warunku brzegowego w dolnym końcu systemu liczbowego. – vicatcu