Miksi tietokoneet laskevat nollasta?

Apr 16, 2025
Laitteisto
SÄHKÖISETTÖTÖN SISÄLTÖ


Nollasta laskeminen on hyvin yleinen käytäntö monilla tietokonekielillä, mutta miksi? Lue, kun tutkimme ilmiötä ja miksi se on niin yleistä.

Tämän päivän Kysymys- ja vastausistunto tulee meille SuperUser-yhteisöstään, joka on Stack Exchangen osasto.

Kysymys

SuperUser-lukija DragonLord on utelias, miksi useimmat käyttöjärjestelmät ja ohjelmointikielet laskevat nollasta. Hän kirjoittaa:

Tietokoneet vastaavat perinteisesti numeerisia arvoja nollasta alkaen. Esimerkiksi C-pohjaisten ohjelmointikielien taulukot alkavat indeksistä nolla.

Mitä historiallisia syitä tähän on, ja mitä käytännön etuja nollasta laskemisella on verrattuna yhteen?

Miksi todellakin? Niin laajaa kuin käytäntö onkin, sen toteuttamiselle on varmasti käytännön syitä.

Vastaus

SuperUser-avustaja Matteo tarjoaa seuraavat oivallukset:

Taulukoiden laskeminen nollasta yksinkertaistaa kunkin elementin muistiosoitteen laskemista.

Jos taulukko on tallennettu tiettyyn muistin kohtaan (sitä kutsutaan osoitteeksi), kunkin elementin sijainti voidaan laskea

elementti (n) = osoite + n * elementin koko

Jos pidät ensimmäistä elementtiä ensimmäisenä, laskennasta tulee

elementti (n) = osoite + (n-1) * elementin koko

Ei suuri ero, mutta se lisää tarpeettoman vähennyksen jokaiselle pääsylle.

Muokattu lisäämään:

  • Taulukkoindeksin käyttö offsetina ei ole vaatimus, vaan vain tapa. Ensimmäisen elementin siirtymän voi piilottaa järjestelmä ja se voidaan ottaa huomioon allokoitaessa ja viitattaessa.
  • Dijkstra julkaisi paperin "Miksi numeroinnin pitäisi alkaa nollasta" ( pdf ), jossa hän selittää, miksi nollasta alkaminen on parempi valinta. Aloittaminen nollasta sallii alueiden paremman esityksen.

Jos haluat syventää vastausta, Dijkstra-artikkeli on informatiivinen lukutaito.


Onko sinulla jotain lisättävää selitykseen? Ääni pois kommenteista. Haluatko lukea lisää vastauksia muilta teknisesti taitavilta Stack Exchangen käyttäjiltä? Katso koko keskusteluketju täältä .

.entry-sisältö .entry-alatunniste

Why Do Computers Count From Zero? (16 Solutions!!)

#1 How Computers Count?

Computers Count From Zero .. Confused?? - How To Fix! (Java / Python)

How Do Computers Keep Time?

Why Do Computers Use 1s And 0s? Binary And Transistors Explained.

Exploring How Computers Work

Why Use Binary? - Computerphile


Laitteisto - Suosituimmat artikkelit

Kuinka myydä kannettavaa tietokonettasi, puhelintasi tai tablettiasi parhaaseen dollariin

Laitteisto Mar 7, 2025

SÄHKÖISETTÖTÖN SISÄLTÖ dugwy39 / Shutterstock Joten, olet päättänyt muuttaa vanhan elektroniikan käteiseksi. Mutta jos yrität tehdä..


Sinun on vaihdettava 160 dollarin AirPod-tietokoneesi muutaman vuoden välein

Laitteisto Feb 21, 2025

SÄHKÖISETTÖTÖN SISÄLTÖ AirPodit ovat yksi Applen rakastetuimmista uusista tuotteista. Mutta jos rakastat niitä niin paljon, että käytät niitä joka päivä, odota, että..


Mitä ovat "oikeus korjata" -lakit ja mitä ne merkitsevät sinulle?

Laitteisto Jan 20, 2025

Oletko koskaan miettinyt, miksi älypuhelimen, tietokoneen tai pelikonsolin korjaaminen on niin vaikeaa itse? Se ei ole sattumaa: yritykset tekevät niistä sellaisia. Mutta "Korjau..


Kuinka heittää lopullinen takapihan elokuva-ilta

Laitteisto Jul 3, 2025

SÄHKÖISETTÖTÖN SISÄLTÖ Suurimmalla osalla ihmisistä on elokuvaillan heittämisen perusteet: saat elokuvan, saat välipaloja, mukavat asiat ja puomi, olet valmis. Elokuvajuh..


Musiikin poistaminen Apple Watchista

Laitteisto Dec 31, 2024

Sinä pystyt lisää jopa 2 Gt musiikkia Apple Watchiin joten voit kuunnella musiikkia kellollasi Bluetooth-kaiuttimella tai kuulokkeilla, vaikka se olisi iPhonen kan..


Voiko pitkän kantaman Wi-Fi-yhteys toimia, jos toinen pää ei käytä suurivahvistettua antennia?

Laitteisto Aug 5, 2025

Kun muodostat pitkän kantaman Wi-Fi-yhteyttä, haluat varmistaa, että yhteys on mahdollisimman vakaa, mutta voitko käyttää antennityyppien yhdistelmää vai pitäisikö sinun k..


Vaikuttaako ikä suorittimen suorituskykyyn?

Laitteisto Dec 6, 2024

Tietokoneesi tuntuu hieman hitaammalta kuin se oli tällä kertaa viime vuonna; onko tämä muutos jotain, jonka voit liittää ikääntyvään prosessoriin? Tämän päivä..


Vinkkiruudusta: Kahden käynnistyslaatikon yhdenmukaistaminen, Canon-kameran päivittäminen ja helppo näppäimistön puhdistus

Laitteisto Sep 16, 2025

SÄHKÖISETTÖTÖN SISÄLTÖ Joka viikko kastamme vinkkipussiin jakamaan käteviä lukijavinkkejä kanssasi. Tällä viikolla etsimme vinkkejä, joiden avulla voit jakaa kansioita..


Luokat