Prikazujem rezultate 1 do 5 od 5

Tema: C++ par pitanja

  1. #1
    Senior Member Small step for mankind
    Datum registracije
    Apr 2006
    Lokacija
    Wolf 3D
    Postova
    2.034

    C++ par pitanja

    Evo i mene pokusavam uciti C++
    Imam Visual C++ 2008 EE, pratim knjigu Demistificirani C++ (2. izdanje) i imam par pitanja.

    1. Zadatak ide ovako:
    Odredite koje ce od navedenih naredbi za ispis dati ispravan umnozak, tj. 20 000 000 000.
    Code:
    	int a = 100000;
    	int b = 200000;
    	long c = a * b;
    
    	cout << c << endl;
    	cout << (a * b) << endl;
    	cout << (static_cast<float>(a) * b) << endl;
    	cout << static_cast<long>(a * b) << endl;
    	cout << (a * static_cast<long>(b)) << endl;
    Kada krenem izvrsavati program na ekranu dobijem sljedece:
    -1474836480
    -1474836480
    -2e+010
    -1474836480
    -1474836480
    Gdje je greska?

    2. Sto znaci ovo "e" u "-2e+010"? Kolko sam skuzio ima veze sa realnim i imaginarnim brojevima, ali ne kuzim sta tocno.
    Bow down before the one you serve, you're going to get what you deserve.

  2. #2
    Senior Member Master Blaster
    Datum registracije
    Nov 2005
    Lokacija
    Zadar
    Postova
    4.028

    Re: C++ par pitanja

    -2e+010
    to je znanstvena notacija, čita se kao <broj_ispred_e> * 10^ <broj_iza_e>
    i to je ujedno ispravan rezultat, kod ostalih dolazi do numeričkog preljeva pa je zato rezultat netočan
    The candle flame gutters. Its little pool of light trembles. Darkness gathers. The demons begin to stir.
    <3 <3 <3 <3 <3 <3 <3
    ŠIRI SA MNOM LJUBAV Cherry!

  3. #3

    Re: C++ par pitanja

    @HalF-DeaD

    Maksimalan broj koji se sa int tj. long može prikazati jest 2147483647 a preko toga ide se u preljev, tj. u negativno područje. S druge strane, float tip ima proširenje do 3.4E +/- 38 i zato se preko treće opcije (float) može točno prikazati rezultat.

    Inače, u ovakvim slučajevima se koristi 64 bitni integer tj.

    Code:
    cout << (a * static_cast<long long>(b)) << endl;
    koji je u ovom slučaju najtočnije rješenje a i po zadanom formatu.
    AMD Athlon 64, 6000+ X2
    4 GB Ram 800 MHZ
    8800 GT, 1GB

    http://www.programiranje.big-forum.net

  4. #4
    Senior Member Small step for mankind
    Datum registracije
    Apr 2006
    Lokacija
    Wolf 3D
    Postova
    2.034

    Re: C++ par pitanja

    Puno hvala na odgovorima. Sad imam jos dva pitanja.

    1. Zar nebi onda -2e+010 trebalo biti -20 000 000 000?
    2. Zasto je ovdje 010 (oktalno 8) umjesto 10?
    Bow down before the one you serve, you're going to get what you deserve.

  5. #5
    Senior Member Master Blaster
    Datum registracije
    Nov 2005
    Lokacija
    Zadar
    Postova
    4.028

    Re: C++ par pitanja

    meni prevoditelj daje 2e+10
    The candle flame gutters. Its little pool of light trembles. Darkness gathers. The demons begin to stir.
    <3 <3 <3 <3 <3 <3 <3
    ŠIRI SA MNOM LJUBAV Cherry!

Slične teme

  1. Par pitanja
    By Tola in forum Programiranje i izrada igara
    Odgovora: 5
    Posljednji post: 13-08-2009, 12:48
  2. Par Wow pitanja
    By KingTomy in forum World Of Warcraft
    Odgovora: 29
    Posljednji post: 07-03-2007, 10:50

Pravila postanja

  • Ne možeš stvarati nove teme
  • Ne možeš odgovarati na postove
  • Ne možeš slati privitke
  • Ne možeš mijenjati svoje postove
  •