|
Witam. Spotkałem się z dziwnym problemem. Otóż zdefiniowałem sobie zmienną o typie uint16_t, czyli ma to być zmienna bez znaku, dwubajtowa. Potem przykładowo w pętli zmniejszam jej wartość od np 5 w dół i po osiągnięciu wartości 0 powinna się "przekręcić" i zacząć zliczać od swojej maksymalnej wartości, którą może pomieścić. Jednak tak nie jest i wartość schodzi w dół, ale ze znakiem ujemnym pomimo typu unsigned. Dodam, że jeżeli zamienie typ na jednobajtowy uint8_t to wszystko jest ok i po przejściu przez 0 liczy od 255 w dół. Czy ktoś może mi wyjaśnić dlaczego w przypadku typu uint16_t liczba przyjmuje wartości ujemne ?
Pozdrawiam
|