Integer , integer adattípus ( angol integer ) az egyik legegyszerűbb primitív adattípus . Egész számok megjelenítésére szolgál , amelyeket egy minimális és maximális érték korlátoz, a számhoz lefoglalt memóriától függően.
Általános szabály, hogy a legtöbb feladathoz egy egész típust használnak, amelyet natív int -nek (vagy egyszerűen int -nek is neveznek ), amelynek szószélessége megegyezik annak a processzornak a szóhosszával, amelyen a program fut (vagy a processzor működési módjával, ha az tud dolgozni különböző hosszúságú gépszavakkal) . Ha szükséges, kisebb (például memóriatakarékosság) és nagyobb ( hosszú aritmetika esetén ) bitmélységű egész számok is használhatók. A nem natív hosszúságú egész számok használatának másik lehetséges oka az adatok hordozhatóságának biztosítása . Az egész leggyakoribb fajtái:
Továbbá, ha memóriát kell takarítani, de nincs szükség negatív számok ábrázolására, akkor előjel nélküli egész számok is használhatók, ami lehetővé teszi a maximális lehetséges érték megduplázását és még egyet: például egy 0 és 65 535 közötti szám előjel nélküli rövid egész számként kell ábrázolni . A szakirodalomban [1] néha ajánlások vannak arra, hogy ne használjunk előjel nélküli egész számokat, mivel előfordulhat, hogy a számítógép processzora nem valósítja meg . Emellett hiányzik az aláíratlan típusok támogatása egyes programozási nyelvekben, például a Java -ban [2] .
Az előjel nélküli egész számok használata indokolt az egész szám túlcsordulást használó algoritmusokban - az a helyzet, hogy az optimalizáló fordítók megváltoztathatják a műveletek sorrendjét és algebrai transzformációkat hajthatnak végre, aminek következtében az optimalizált algoritmusban a túlcsordulás más pillanatban következhet be, mint a nem optimalizált, vagy egyáltalán nem, ami meghatározatlan viselkedéshez vezet . Előjel nélküli egész számok esetén az aritmetikai túlcsordulást befolyásoló optimalizálás le van tiltva, így a túlcsordulási viselkedés mindig definiálva van, de a fordító által generált natív kód kevésbé lesz optimális.
A memóriában egy egész szám bájtokra (oktettekre) osztott bitek sorozataként kerül tárolásra. A bájtsorrend lehet közvetlen ( eng. big-endian ), a legjelentősebb bittől a legkevésbé jelentősig, vagy fordított ( eng. little-endian ).
A jelábrázolás a különböző architektúrákon is eltérő lehet . A legelterjedtebb az úgynevezett kiegészítő kód , amelyben a negatív számot a 0-ból való kivonással ábrázolják túlcsordulás mellett, míg ha a magas bájt magas bitje be van kapcsolva, akkor a szám negatívnak minősül. Ritkábban használják a fordított kódot (amikor egy negatív számot egy pozitív bitenkénti inverzeként ábrázolunk), a közvetlen kódot (amikor egy negatív számot pozitív számként ábrázolunk az előjelbit bekapcsolásával), vagy az egzotikusabbakat. mint például az alap −2 számrendszer [3] .
A számológépek és néhány korai számítógép is használták az egész számok BCD - reprezentációját . Egy ilyen kód leegyszerűsíti a megjelenítő eszközt, és ember számára olvashatóbbá teszi a memóriában lévő számok ábrázolását, de bonyolítja az aritmetikai-logikai eszközt , és több memóriát igényel ugyanazon számok megjelenítéséhez.
Az aritmetikai műveletek elsősorban egész értékekre alkalmazhatók. Az alábbiakban a leggyakrabban használtakat mutatjuk be (zárójelben vannak feltüntetve a különféle programozási nyelveken és hasonló eszközökön található megnevezések).
Néhány programozási nyelvben a rövidség kedvéért vannak olyan operátorok, amelyek lehetővé teszik számtani művelet végrehajtását egy hozzárendeléssel. Például a " +=" hozzáadja a bal oldali változó aktuális értékét a jobb oldali kifejezéssel, és az eredményt az eredeti változóba helyezi. Ezenkívül bizonyos nyelveken és környezetekben elérhető a MulDiv kombinált művelet is , amely egy számmal szoroz, majd az eredményt elosztja a másodikkal.
Általában a sebesség szempontjából legdrágább műveletek a szorzás és az osztás (az osztás maradékának megszerzése).
A számítógép memóriájában általában rögzített méretű cellákat foglalnak le egész számok tárolására. Emiatt a növelési és csökkentési műveletek túlcsorduláshoz vezethetnek, ami torz eredményt eredményez. Néhány programozási nyelv lehetővé teszi, hogy ilyen esetekben kivételt tegyen. Ezenkívül meghatározhatja a túlcsordulási viselkedést:
A matematikai műveletek mellett egész számokra is alkalmazhatók a bitműveletek , amelyek a pozíciós bináris kódolás sajátosságain alapulnak. Általában sokkal gyorsabban hajtják végre, mint az aritmetikai műveleteket, ezért optimálisabb analógokként használják őket.
Elég gyakori műveletek a belső reprezentációban szereplő számértékből egy karakterláncot kapnak, és fordítva - egy számot egy karakterláncból. Karakterláncra konvertáláskor a formázási eszközök általában rendelkezésre állnak a felhasználó nyelvétől függően.
Az alábbiakban felsorolunk néhány karakterlánc-ábrázolást a számok közül.
Az egész számok közé tartozik egy felsorolt típus is. . A felsorolt típusú változók véges előre meghatározott értékkészletet vesznek fel. A halmaz méretét nem az ilyen típusú változók egész értékének megjelenítésére használt bájtok száma határozza meg.
Például a Pythonban a logikai érték az egész számok altípusa, és a False és True neveket használja, amelyek egész számra öntve 0 és 1 értéket kapnak [4] .
Adattípusok | |
---|---|
Értelmezhetetlen | |
Numerikus | |
Szöveg | |
Referencia | |
Összetett | |
absztrakt | |
Egyéb | |
Kapcsolódó témák |