Mengapa Komputer Menghitung Dari Nol?

Daftar Isi:

Mengapa Komputer Menghitung Dari Nol?
Mengapa Komputer Menghitung Dari Nol?

Video: Mengapa Komputer Menghitung Dari Nol?

Video: Mengapa Komputer Menghitung Dari Nol?
Video: How to Import Contacts from Excel to iPhone 6S/7/8/5C or iPad/iCloud - YouTube 2024, April
Anonim
 Menghitung dari nol adalah praktik yang sangat umum di banyak bahasa komputer, tetapi mengapa? Baca terus ketika kami menjelajahi fenomena tersebut dan mengapa fenomena ini begitu meluas.
Menghitung dari nol adalah praktik yang sangat umum di banyak bahasa komputer, tetapi mengapa? Baca terus ketika kami menjelajahi fenomena tersebut dan mengapa fenomena ini begitu meluas.

Sesi Tanya & Jawab Hari ini hadir untuk memberi kami SuperUser - subdivisi Stack Exchange, pengelompokan situs web Q & A berbasis komunitas.

Pertanyaan

Pembaca SuperUser DragonLord penasaran mengapa kebanyakan sistem operasi dan bahasa pemrograman dihitung dari nol. Dia menulis:

Computers traditionally tally numerical values starting from zero. For example, arrays in C-based programming languages start from index zero.

What historical reasons exist for this, and what practical advantages does counting from zero have over counting from one?

Kenapa memang begitu? Seperti luasnya praktik, pasti ada alasan praktis untuk pelaksanaannya.

Jawabannya

Kontributor SuperUser, Matteo, menawarkan wawasan berikut:

Counting arrays from 0 simplifies the computation of the memory address of each element.

If an array is stored at a given position in memory (it’s called the address) the position of each element can be computed as

element(n) = address + n * size_of_the_element

Jika Anda mempertimbangkan elemen pertama yang pertama, perhitungan menjadi

element(n) = address + (n-1) * size_of_the_element

Bukan perbedaan besar tetapi menambahkan pengurangan yang tidak perlu untuk setiap akses.

Diedit untuk menambahkan:

  • Penggunaan indeks array sebagai offset bukan merupakan persyaratan tetapi hanya sebuah kebiasaan. Pengimbangan elemen pertama dapat disembunyikan oleh sistem dan dipertimbangkan ketika mengalokasikan dan mereferensikan elemen.
  • Dijkstra menerbitkan sebuah makalah “Mengapa penomoran harus dimulai dari nol” (pdf) di mana dia menjelaskan mengapa memulai dengan 0 adalah pilihan yang lebih baik. Mulai dari nol memungkinkan representasi rentang yang lebih baik.

Jika Anda ingin menggali lebih dalam jawaban, makalah Dijkstra adalah bacaan yang informatif.

Memiliki sesuatu untuk ditambahkan ke penjelasan? Bicaralah di komentar. Ingin membaca lebih banyak jawaban dari pengguna Stack Exchange yang paham teknologi lainnya? Lihat diskusi lengkap di sini.

Direkomendasikan: