Gdy liczba całkowita jest poza zakresem typu, wartość maksymalna + 1 jest dodawana/odejmowana (w zależności od tego, która część zakresu była liczbą). PrzykładowoDlaczego niejawne konwersje C działają tak jak one?
unsigned short num = 65537;
Num ma wartość 1 (65536 odjęto). Moje pytanie brzmi: dlaczego to się dzieje? Moja intuicja podpowiada mi, że ma to coś wspólnego z flagą do przenoszenia i flagą przelewu, ponieważ maksymalna wartość to zawsze 1111 ...
Z góry dziękuję!
Obciąża ... – Mehrdad
Doskonały przykład dlaczego powinieneś skompilować z zasadniczo wszystkimi możliwymi ostrzeżeniami włączonymi. Dlaczego tak jest w standardzie ... Nie mam pojęcia: p. (Chyba, że masz na myśli konkretnie 1. To jest po prostu przepełnienie komplementu 2). – Corbin
Przykład takiego komunikatu ostrzegawczego: 'ostrzeżenie: duża liczba całkowita niejawnie obcięta do typu bez znaku' – curiousguy