Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Integer wrap around

[es] :: Art of Programming :: Integer wrap around

[ Pregleda: 7209 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bin.sys

Član broj: 325059
Poruke: 3
*.dynamic.isp.telekom.rs.



+219 Profil

icon Integer wrap around11.09.2014. u 11:32 - pre 116 meseci
Sistem koristi označenu celobronju vrednost (32 bita) kao brojač postova. Svaki put kada korisnik doda novi post brojač se uvećava za jedan. Koliko postova treba da objavi korisnik da bi brojač imao vrednost -1?

P.S.
Ja znam odgovor na pitanje. Napisao sam i kod koji dokazuje da je to 4294967295, ali ne znam kako da objasnim ovo nekome ko ne razume osnove.

Code:

#include<iostream>
using namespace std;

int main(void)
{
    signed int prekoracenje = 0;
    for(unsigned long long brojac = 0; brojac < 4294967295; brojac++)
        prekoracenje++;
    cout<<prekoracenje;    
    return 0;
}
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+711 Profil

icon Re: Integer wrap around11.09.2014. u 12:02 - pre 116 meseci
Isti princip kao kilometar-sat na autu.
 
Odgovor na temu

reiser

Član broj: 7895
Poruke: 2314



+102 Profil

icon Re: Integer wrap around11.09.2014. u 13:57 - pre 116 meseci
Kako ovo spada u "Art of programming" sekciju? Koja je poenta posta uopste?
 
Odgovor na temu

bin.sys

Član broj: 325059
Poruke: 3
*.dynamic.isp.telekom.rs.



+219 Profil

icon Re: Integer wrap around11.09.2014. u 14:10 - pre 116 meseci
Citat:
jablan:
Isti princip kao kilometar-sat na autu.


Sviđa mi se poređenje. Na osnovu ovoga što si napisao napravio sam na brzinu skicu kilometar-sata, s tim da sam ga proširio negativnim brojevima koji mere kilometražu kada se vozi unazad.



Nadam se da je sa slike jasno zašto je potrebno preći 4294967295km da bi se došlo do -1.

Citat:
Kako ovo spada u "Art of programming" sekciju? Koja je poenta posta uopste?


Pitanje nije vezano ni za jedan jezik posebno. Jednostavno nisam našao podforum koji bi više odgovarao temi. Iznenadio bi se kad bi znao da čak i ljudi koji se profesionalno bave programiranjem ne mogu da shvate ovo. Evo pitanja za tebe, koliko je abs(-2147483648)?
Prikačeni fajlovi
 
Odgovor na temu

bojan_bozovic

Član broj: 29028
Poruke: 3292
*.dynamic.sbb.rs.

Sajt: angelstudio.org


+392 Profil

icon Re: Integer wrap around11.09.2014. u 14:15 - pre 116 meseci
@bin.sys

Počni sa objašnjavanjem od osnova, dakle brojni sistem sa bazom 2, signedness, 32 bitni unsigned int i sve će biti OK.
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12848



+4784 Profil

icon Re: Integer wrap around11.09.2014. u 14:35 - pre 116 meseci
Ma, troluje jer sam u nekoj drugoj temi neparan broj greskom protumacio (nisam racunao) kao 232+1 umesto -1 i sad se uhvatio toga.
Mo'š mislit'..
 
Odgovor na temu

bin.sys

Član broj: 325059
Poruke: 3
*.dynamic.isp.telekom.rs.



+219 Profil

icon Re: Integer wrap around11.09.2014. u 14:48 - pre 116 meseci
Ko je tebe uopšte pomenuo u ovoj temi? Tema je za sve koje bi ovo moglo da zanima, uključujući i tebe. Zašto bi ovo bilo trolovanje ako si ti napravio grešku u okviru druge teme? Mislim da grešku treba da ispravljaš tamo gde si je napravio, a ne ovde! Uostalom, ako ti je lakše, onome ko bude čitao tu drugu temu biće jasno da si ti možda napravio previd, a da član foruma koji ti je priskočio u pomoć sigurno ne zna o čemu se radi.
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
82.208.243.*



+2789 Profil

icon Re: Integer wrap around11.09.2014. u 16:18 - pre 116 meseci
Matematičko objašnjenje je da se sve operacije vrše po modulu , tj. ako uvedemo relaciju definicijom

,

onda važi

jer je ,

jer za takvo da je važi ,

jer za takvo da je i takvo da je važi ,

jer za i takve da je i važi , a iz i sledi da je , odnosno .

Radeći sa kongruencijama mi kao da zaboravljamo sa kojim tačno celim brojevima radimo, već za svaki imamo informaciju samo o tome čemu je kongruentan i na kraju dobijamo rezultat kongruentan onome što bismo dobili sa tačnim informacijama o brojevima ako smo koristili samo operacije sabiranja oduzimanja i množenja.

Ovde je i sa 32 bita se može predstaviti bilo koji sistem od uzastopnih celih brojeva. Ponekad je podesno da to budu brojevi iz intervala , a ponekad da to budu celi brojevi iz intervala .

Naravno, ne treba klinca zgromiti sa ovim, ali bi trebalo da se kongruencije rade u školi.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

[es] :: Art of Programming :: Integer wrap around

[ Pregleda: 7209 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.