Nackdel med väldigt stora tal?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
newbadboy
Inlägg: 2426
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Nackdel med väldigt stora tal?

Inlägg av newbadboy »

Satt och filade på en tidsräknare som skall räkna upp till ca 1 timme. Ett sätt är att bara tex ta en long int variabel och stega den till ett mycket stort tal. Låt säga att variabel räknas upp till kanske 50 miljoner för att uppnå en timme.

Finns det några uppenbara faror eller ngt skumt som kan hända genom att räkna upp en variabel till såna värden?
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4689
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Nackdel med väldigt stora tal?

Inlägg av Swech »

Du behöver säkert en sekundräknare och kanske en minuträknare också
så bättre att ha en som räknar sekunder, när den är övre 60 så
nollställ och räkna upp minut... osv...

Det blir lättare att förstå jämfört med 49.291.332 = 58 minuter ...

Swech
Nerre
Inlägg: 26654
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Nackdel med väldigt stora tal?

Inlägg av Nerre »

Det finns inga direkta problem med det, det är ju ungefär så unix-tid fungerar, där använder man ju idag för det mesta ett 64-bitars tal.

Det är också det mest komprimerade sättet att räkna tid. Nackdelen är att det kan behövas rätt komplexa funktioner om det ska omvandlas till datum, men fördelen där är ju att man kan använda vilken kalender man vill. Om du räknar dagar, månader och år måste du hålla dig inom en och samma kalender.
Användarvisningsbild
newbadboy
Inlägg: 2426
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Re: Nackdel med väldigt stora tal?

Inlägg av newbadboy »

Ofan. Nä just i detta fallet handlade det bara om en enda tid. Men jag kan se problemet om man vi ha tex en riktig klockfunktion.

Då är det utrett.....
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45168
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Nackdel med väldigt stora tal?

Inlägg av TomasL »

Dessutom beror det ju på arkitekturen hur komplicerat det blir i bakgrunden. på en 8-bitars prolle blir det ju rätt o-optimalt att använda 32/64 bitars ord till exempel.
Hur lång en "long int" egentligen är beror ju också på arkitekturen och kompilatorn.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Nackdel med väldigt stora tal?

Inlägg av lillahuset »

Om man vill ha en 32 bits unsigned säger man till kompilatorn att man vill ha en uint32_t. Long int är bara dumheter. Jag hade vid milennieskiftet en C-kompilator till PIC, från CCS tror jag, rena skiten. Där var en long int 16 bit och en int 8 bit.

Och för att svara på rubrikens fråga. Enda nackdelarna med långa heltal är att de tar lite mer plats och hanteras lite långsammare om man använder en processor med kort ordlängd.
Användarvisningsbild
newbadboy
Inlägg: 2426
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Re: Nackdel med väldigt stora tal?

Inlägg av newbadboy »

Skönt att höra. Det var lite det jag trodde på och inte en massa minnesproblem och skumma grejer
Mr Andersson
Inlägg: 1394
Blev medlem: 29 januari 2011, 21:06:30
Ort: Lapplandet

Re: Nackdel med väldigt stora tal?

Inlägg av Mr Andersson »

Allt beror ju på vilken upplösning du vill ha på tiden. Behöver du bara t.ex. en minuts noggrannhet så räcker det ju med en char då du bara räknar till 60, men ska du ha nanosekundprecision så behöver du minst 42 bitar.

Att välja för stor datatyp drar ner prestandan på vissa system. På andra så tar all minnesaccess lika lång tid och typen spelar mindre roll. Dock tar det fortfarande upp mera plats. Det finns t.om. system där det är långsammare att använda för liten typ. T.ex. om minsta adresserbara enhet är 16 bitar och du använder en 8 bitars typ. Läs databladet för att se vad som gäller för just din cpu.

TL;DR.. Välj datatyp efter behov.
Skriv svar