Bilgisayarlar Neden Sıfırdan Sayılıyor?
Sıfırdan saymak birçok bilgisayar dilinde çok yaygın bir uygulamadır, fakat neden? Fenomeni keşfettikçe ve neden bu kadar yaygın olduğunu okuyun.
Bugünün Soru ve Cevap oturumu bize topluluk tarafından yönlendirilen bir soru-cevap web sitesi grubu olan Stack Exchange'in bir alt birimi olan SuperUser'ın izniyle geliyor..
Soru
SuperUser okuyucu DragonLord, çoğu işletim sisteminin ve programlama dilinin neden sıfırdan sayıldığını merak ediyor. O yazıyor:
Bilgisayarlar geleneksel olarak taksitli sıfırdan başlayarak sayısal değerler. Örneğin, C tabanlı programlama dillerindeki diziler sıfır dizininden başlar.
Bunun için hangi tarihsel nedenler var ve sıfırdan saymanın pratik avantajlarından bir taneden fazla saymak var?
Neden gerçekten? Uygulamada olduğu kadar yaygın olduğu gibi, kesinlikle uygulamasının pratik sebepleri vardır..
Cevap
SuperUser yazarı Matteo, aşağıdaki bilgileri sunmaktadır:
0'dan dizi sayımı, her bir öğenin bellek adresinin hesaplanmasını kolaylaştırır.
Bir dizi bellekte verilen bir konumda (adres olarak adlandırılır) saklanırsa, her bir elemanın konumu olarak hesaplanabilir.
element (n) = adres + n * size_of_the_element
İlk elemanı ilk düşünürseniz, hesaplama olur
element (n) = adres + (n-1) * size_of_the_element
Çok büyük bir fark değil, ancak her erişim için gereksiz bir çıkarma ekler.
Eklemek için düzenlendi:
- Dizi indeksinin ofset olarak kullanılması bir gereklilik değil, sadece bir alışkanlıktır. İlk elemanın ofseti sistem tarafından gizlenebilir ve eleman tahsis edilirken ve referans verilirken dikkate alınabilir..
- Dijkstra bir bildiri yayınladı: “Neden sıfırlama başlamalı” (pdf), burada 0 ile başlamanın neden daha iyi bir seçim olduğunu açıklıyor. Sıfırdan başlamak, aralıkların daha iyi temsil edilmesini sağlar.
Eğer cevabı daha derinden incelemeyi düşünüyorsanız, Dijkstra makalesi bilgilendirici bir okumadır..
Açıklamaya eklemek için bir şey var mı? Yorumlarda ses kesiliyor. Diğer teknoloji meraklısı Stack Exchange kullanıcılarından daha fazla cevap okumak ister misiniz? Burada tüm tartışma konusuna göz atın.