• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z przepełnieniem

Object Storage Arubacloud
0 głosów
118 wizyt
pytanie zadane 24 sierpnia 2016 w C i C++ przez toyboy1996 Nowicjusz (120 p.)
zmienione kategorie 24 sierpnia 2016 przez toyboy1996
Witajcie. Mam pewien problem z mnożeniem intów.

Mam dwie liczby typu int : jedną z nich jest 1000000001, a druga jest z przedziału [1, 10^6].

Wynik tego mnożenie chcę wypisać jako inna zmienna.. Wiadomo, że int będzie dla niektórych przypadków przepełniony.

Więc chciałem wynik tego mnożenie trzymać jako long long.

Ale zaobserwowałem, że np. mnożenie liczb 1000000001 i 10 też mi wyrzuca nieprawidłowy wynik po wypisaniu, mimo iż wynik jest zapisany jako long long. W czym tkwi problem?
komentarz 24 sierpnia 2016 przez unknown Nałogowiec (39,560 p.)
Pokaż kod.
komentarz 24 sierpnia 2016 przez toyboy1996 Nowicjusz (120 p.)
#include <iostream>
using namespace std;
int main()
{
    int a, b;
    long long int x;
    cin >> a >> b;
    x = a*b;
    cout << x << endl;
    return 0;
}

 

U mnie nawet ten program nie wypluwa takiej liczby jaką powinien z mnożenia liczb 10 i 1000000001 

1 odpowiedź

+1 głos
odpowiedź 24 sierpnia 2016 przez unknown Nałogowiec (39,560 p.)
Mnożąc te 2 liczby następuje overflow. Zmień typ pierwszej liczby na long long. btw. overflow liczb signed to UB.

Podobne pytania

0 głosów
2 odpowiedzi 698 wizyt
pytanie zadane 15 marca 2020 w C i C++ przez Matibedi335 Początkujący (350 p.)
0 głosów
2 odpowiedzi 89 wizyt
pytanie zadane 26 sierpnia 2019 w C i C++ przez ForeverFriendzone Dyskutant (7,520 p.)

92,628 zapytań

141,490 odpowiedzi

319,861 komentarzy

62,010 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...