17Aug
A nulláról történő számolás sok számítógépes nyelvben igen gyakori gyakorlat, de miért? Olvassa el, miközben feltárjuk a jelenséget, és miért olyan széles körben elterjedt.
A mai kérdés &A válaszüzenet a SuperUser - a Stack Exchange megosztottságának köszönhetően - a Q & A webhelyek közösségi szintű csoportosítása.
A
SuperUser olvasó kérdése A DragonLord kíváncsi arra, hogy a legtöbb operációs rendszer és a programozási nyelvek számítanak nulláról.Így írja:
A számítógépek hagyományosan numerikus értékek nulláról indulnak. Például a C-alapú programozási nyelvek tömbjei az index nullától kezdődnek.
Milyen történelmi okok léteznek erre, és milyen gyakorlati előnyök számítanak a nullától, többet számolnak az egyiktől?
Miért valóban? Amint olyan széles körben elterjedt, mint a gyakorlat, biztosan vannak gyakorlati okok annak végrehajtására.
Az
SuperUser válaszadó Matteo a következő észrevételeket kínálja:
Az 0-ból származó tömbök számlálása leegyszerűsíti az egyes elemek memóriacímének kiszámítását.
Ha egy tömb egy adott pozícióban van tárolva a memóriában( ez az úgynevezett cím), akkor az egyes elemek pozíciója
elemként( n) = address + n *számítással számítható ki. Ha az első elemet az elsőnek tekintjük,
elem( n) = cím +( n-1) * méret az elemek közülNem nagy különbség, de minden egyes hozzáféréshez szükségtelen kivonást ad.
Szerkesztett hozzáadás:
- A tömbindex mint eltolás használata nem követelmény, hanem csak szokás. Az első elem eltolását a rendszer elrejtheti, és figyelembe vehető az elemek elosztásakor és hivatkozásakor.
- A Dijkstra kiadott egy cikket: "Miért kellene a számozás nulláról indulni"( pdf), ahol megmagyarázza, miért jobb választás a 0-tól? A nullától kiindulva a tartományok jobb ábrázolása lehetséges.
Ha mélyrehatóbbá kívánja tenni a választ, a Dijkstra-papír tájékoztató jellegű.
Van valami a magyarázat hozzáadásához? Hangzik ki a megjegyzésekben. Szeretne többet válaszolni a többi technikus-tudós Stack Exchange felhasználóiról? Nézze meg a teljes vitafonalat itt.