17Aug

Зашто рачунари рачунају од нуле?


Бројање од нуле је врло уобичајена пракса на многим језицима рачунара, али зашто?Прочитајте док истражујемо феномен и зашто је то тако широко распрострањено.

Данашње питање & амп;Сесија одговора долази нам захваљујући СуперУсер-у подскупу Стацк Екцханге-а, групације К & ама;

Питање

СуперУсер читач ДрагонЛорд је радознао зашто већина оперативних система и програмских језика броје од нуле.Пише:

Рачунари традиционално израчунавају нумеричке вредности почев од нуле.На примјер, низови у програмским језицима заснованим на Ц-у почињу од нуле индекса.

Који историјски разлози постоје за ово, а које практичне предности броје од нуле, имају више од броја?

Зашто заиста?Као што је пракса широко распрострањена, сигурно постоје практични разлози за његову примену.

Одговор на

СуперУсер допринос Маттео нуди следеће увиде:

Низ бројева од 0 поједностављује израчунавање меморијске адресе сваког елемента.

Ако је низ меморисан на датој позицији у меморији( то се зове адреса), позиција сваког елемента може се израчунати као

елемент( н) = адреса + н * величина_оф_тхе_елемент

Ако први елемент посматрате прво, израчунавањепостаје

елемент( н) = адреса +( н-1) * сизе_оф_тхе_елемент

Није велика разлика, али додаје непотребно одузимање за сваки приступ.

Уређено за додавање:

  • Коришћење индекса матрице као офсета није услов, већ само навика.Офсет првог елемента може бити сакривен од стране система и узети у обзир приликом додјеле и референтног елемента.
  • Дијкстра је објавио чланак "Зашто бројање треба започети у нули"( пдф), гдје објашњава зашто је почетак са 0 бољи избор.Почев од нуле омогућава бољу заступљеност опсега.

Ако тражите да истражите дубље у одговор, папир Дијкстра је информативни читач.

Имате ли нешто да додате објашњењу?Звучи у коментарима.Желите да прочитате више одговора од других корисничких корисника Стацк Екцханге?Овде погледајте комплетну тему.