Zachowanie typu short
Ostatnio zmodyfikowano 2021-04-17 16:30
Ranzuk Temat założony przez niniejszego użytkownika |
Zachowanie typu short » 2021-04-17 14:25:42 #include <iostream> using namespace std;
short liczba { 32767 }; int main() { liczba += 1; cout << "liczba = " << liczba << "\n"; }
Dlaczego po dodaniu 1 do liczby typu short = 32767 otrzymujemy -32768, zamiast komunikatu o przekroczeniu limitu dodatniego dla typu short ? |
|
pekfos |
» 2021-04-17 14:54:52 Nie ma takiego komunikatu. |
|
Ranzuk Temat założony przez niniejszego użytkownika |
» 2021-04-17 15:20:42 "Nie ma takiego komunikatu." To napisłem, ale dlaczego 32767 + 1 daje -32768 dla short. Jak to nalezy tłumaczyć ? I ogolniej jak sie ustrzec przekroczenia limitów ustalonych dla poszczegolnych typow liczbowych ? |
|
pekfos |
» 2021-04-17 16:30:12 ale dlaczego 32767 + 1 daje -32768 dla short. Jak to nalezy tłumaczyć ? Efekt uboczny przyjętego kodowania liczb ujemnych. Dokładne wyjaśnienie znajdziesz w Operacje bitowe. I ogolniej jak sie ustrzec przekroczenia limitów ustalonych dla poszczegolnych typow liczbowych ? Trzeba uważać co się robi. Bez dobrego powodu nie powinieneś używać typów mniejszych niż int do ogólnych obliczeń i w każdym przypadku trzeba brać pod uwagę jakie największe możliwe wartości będą tam się pojawiać. |
|
« 1 » |