0부터 세는 것은 많은 컴퓨터 언어에서 매우 일반적인 관행이지만 그 이유는 무엇입니까? 현상과 그것이 왜 그렇게 널리 퍼져 있는지 탐구하면서 계속 읽으십시오.
오늘의 질문 및 답변 세션은 커뮤니티 중심의 Q & A 웹 사이트 그룹 인 Stack Exchange의 하위 부문 인 SuperUser가 제공 한 것입니다.
질문
수퍼 유저 독자 인 DragonLord는 왜 대부분의 운영 체제와 프로그래밍 언어가 0부터 계산되는지 궁금합니다. 그는 다음과 같이 씁니다.
컴퓨터는 전통적으로 0부터 시작하는 숫자 값을 집계합니다. 예를 들어 C 기반 프로그래밍 언어의 배열은 인덱스 0에서 시작합니다.
이에 대한 역사적 이유는 무엇이며, 0부터 계산하는 것이 1부터 계산하는 것보다 실질적인 이점은 무엇입니까?
왜 그렇습니까? 관행이 널리 퍼져 있지만 분명히 그 구현에 대한 실질적인 이유가 있습니다.
대답
수퍼 유저 기여자 Matteo는 다음과 같은 통찰력을 제공합니다.
0부터 배열을 계산하면 각 요소의 메모리 주소 계산이 단순화됩니다.
배열이 메모리의 지정된 위치 (주소라고 함)에 저장되면 각 요소의 위치는 다음과 같이 계산 될 수 있습니다.
element (n) = address + n * size_of_the_element첫 번째 요소를 첫 번째 요소로 간주하면 계산이
element (n) = 주소 + (n-1) * size_of_the_element큰 차이는 아니지만 각 액세스에 대해 불필요한 빼기를 추가합니다.
추가하기 위해 편집 :
답을 더 깊이 파고 들고 싶다면 Dijkstra 논문이 유익한 자료입니다.
설명에 추가 할 것이 있습니까? 댓글에서 소리를 내세요. 기술에 정통한 다른 Stack Exchange 사용자의 답변을 더 읽고 싶으신가요? 여기에서 전체 토론 스레드를 확인하십시오. .