Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zachowanie typu short

Ostatnio zmodyfikowano 2021-04-17 16:30
Autor Wiadomość
Ranzuk
Temat założony przez niniejszego użytkownika
Zachowanie typu short
» 2021-04-17 14:25:42
C/C++
#include <iostream>
using namespace std;

short liczba { 32767 }; // maksymalna dodatnia wartosc liczby typu short

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 ?
P-178432
pekfos
» 2021-04-17 14:54:52
Nie ma takiego komunikatu.
P-178433
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 ?
P-178434
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 » Kurs C++» Poziom 5Operacje bitowe lekcja.

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ć.
P-178437
« 1 »
  Strona 1 z 1