Counting from zero is a very common practice in many computer languages, but why? Read on as we explore the phenomenon and why it is so widespread.
今天的問答環節是由SuperUser提供的,SuperUser是Stack Exchange的一個分支,是一個由社群驅動的問答網站分組。
超級使用者讀者DragonLord很好奇為什麼大多數作業系統和程式語言都是從零開始計算的。他寫道:
Computers traditionally tally numerical values starting from zero. For example, arrays in C-based programming languages start from index zero.
What historical reas*** exist for this, and what practical advantages does counting from zero have over counting from one?
為什麼呢?儘管這種做法很普遍,但實施這種做法肯定有實際原因。
超級使用者貢獻者Matteo提供了以下見解:
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_elementIf you c***ider the first element the first, the computation becomes
element(n) = address + (n-1) * size_of_the_elementNot a huge difference but it adds an unnecessary subtraction for each access.
Edited to add:
如果你想更深入地探究答案,Dijkstra的論文是一本資訊豐富的讀物。
有什麼要補充的解釋嗎?在評論中發出聲音。想從其他精通技術的Stack Exchange使用者那裡瞭解更多答案嗎?在這裡檢視完整的討論主題。
...可變的,而元組是不可變的。 目錄 1. 概述和主要區別 2. 什麼是列表 3. 什麼是元組 4. 列表與元組的相似性 5. 並列比較-列表與元組的表格形式 6. 摘要 什麼是列表(list)? 在諸如C或C++的程式語言中,陣列被用來儲存相同資料型別...
... 使用伺服器端和客戶端攻擊入侵和控制遠端計算機。 遠端控制一個被駭客攻擊的系統,並利用它攻擊其他系統。 發現、利用和防止許多web應用程式漏洞,如XSS和SQL注入。 ...
...功能在大多數現代作業系統的BeOS級別上仍然沒有實現。 為什麼beos失敗了? 憑藉其備受讚譽的技術和成功的近距離磨合,BeOS幾乎是痛苦的技術假設場景的教科書案例。最著名的是,1996年,蘋果提出收購Be及其智慧財產權,意圖...
...能希望刪除這些詳細資訊,然後從internet服務提供商開始計算新月份的資料的那一天開始重新計算。 為此,請進入“設定”>“網路和網際網路”>“資料使用”。您可以按Windows+I從Windows 10中的任何位置開啟設定應用程式。 ...
...樣使用0-9,也使用字母A到F來表示額外的六位數字。 那麼為什麼計算機使用二進位制呢? 簡而言之:硬體和物理定律。計算機中的每一個數字都是一個電訊號,在計算機的早期,電訊號很難精確地測量和控制。只有區分由負電...
...,在恢復模式下執行此操作與在macOS中執行此操作並沒有什麼不同。 要開始,請單擊磁碟實用程式選項。 根據您啟動恢復模式的方式,您可能會看到立即啟動磁碟應用工具的選項,如上所示。如果沒有,您可以在選單欄中...
...、Linux,甚至Android平板電腦的新的多使用者帳戶功能。 為什麼不只用一個賬戶呢? 如果您在計算機上使用單個使用者帳戶,則每個人都將共享相同的應用程式設定、檔案和系統許可權。 應用程式設定:使用單個使用者帳戶時...