Az életkor az int vagy byte?
Kis segítség:
Mekkora a minimális és a maximális életkor, amit tárolsz?
Melyik típus számábrázolási tartományába fér bele?
Ha mindkettőbe, melyik típus használ kevesebb erőforrást?
Ha további műveleteket végzel vele, azokat milyen típusú változóval végzed? (lehet szempont, hogy kevesebbet keljen konvertálni)
Az életkort milyen pontosan kell megadnod? (ha szempont a 49.123 év ábrázolása, akkor gondold újra a kérdést)
Szerintem egy egyszerű kérdést (szándékosan) alaposan túlpörögtem, de ezek szerint szoktam változó típust választani
"Az életkor az int vagy byte?"
Amelyikbe rakod az lesz.
Ez C#, itt nincs shortint.
A pontos válasz egyébként az, hogy attól függ. A szempontokat figyelembe véve, amiket #2-es válaszoló leírt, hogy pl. lebegőpontos eredményre is számítani kell, és azt is figyelembe vége, hogy mekkora a gépi szóhossz mérete, több jó megoldás is lehet. De szerintem, ha valaki ilyen kérdést tesz fel, akkor nyilvánvaló, hogy egész típusban kell gondolkodni, és az egyetlen szempont, amit figyelembe kell venni, az adott típus tárolási mérete, illetve hogy előjeles-e, vagy sem. Ebből a szempontból a byte nyer.
Ez ilyen iskolai feladat, de a való életben úgyis jellemzően a születési időt tárolják timestamp formátumban, amiből ugye bármikor ki lehet számolni az életkort.
Hol van itt szó C sharpról, mint előfeltételről?
A kérdező szempontjainak az felel meg a legjobban, ha születési évet tárol és abból képez életkort. A tárolandó adatok mennyiségét nem ismerjük, így lehet az akár milliárdos nagyságrend is. Erre a tetemes (elvi) mennyiségre pedig az egy byte tárigényű előjeles (vagy előjel nélküli) integer a legalkalmasabb. Ez vitán felül áll.
Feltételezem ez egy iskolai feladat.
Ha pusztán emberi életkorról (nem születési dátumról) van szó, és C#-ban az int és a byte között
lehet választani (semmi lebegőpontos érték), akkor helytakarékosság szempontjából a byte az alkalmasabb.
A magzat - bár emberi lény, de - még nem használ számítógépet, így a negatív számok kiesnek a "szórásból", a legidősebb ember a Földön:
meg felfelé kerekítve 123 éves volt - vegyis belefér a 127-es keretbe.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!