Задать вопрос
@avion123678

Переполнение в с++?

Здравствуйте, почему при использовании типа short, операция умножения выполняется корректно:
#include <iostream>

int main()
{
    short a = 32767, b = 32767;

    std::cout << a * b;

    return 0;
}

Результат:
1 073 676 289

Но при использовании типа int:
#include <iostream>

int main()
{
    int a = 2147483647, b = 2147483647;

    std::cout << a * b;
    return 0;
}

Результат:
1
  • Вопрос задан
  • 1648 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Разработчик C++
    9 месяцев
    Далее
  • Яндекс Практикум
    Разработчик C++ расширенный
    12 месяцев
    Далее
  • Яндекс Практикум
    Мидл разработчик С++
    4 месяца
    Далее
Решения вопроса 1
devalone
@devalone
̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
Комментировать
Пригласить эксперта
Ответы на вопрос 1
fzfx
@fzfx
18,5 дм
потому что при умножении двух переменных тип переменной с результатом соответствует наибольшему типу исходных переменных. в вашем случае это int. а в int 461169207647875609 не помещается.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы