컴퓨터가 이진수 시스템 (0,1)을 사용하는 이유는 무엇입니까? 왜 대신 3 차 숫자 체계 (0,1,2) 또는 다른 숫자 체계를 사용하지 않습니까?
컴퓨터가 이진수 시스템 (0,1)을 사용하는 이유는 무엇입니까? 왜 대신 3 차 숫자 체계 (0,1,2) 또는 다른 숫자 체계를 사용하지 않습니까?
답변:
우리는 컴퓨터 과학 분야에 있기 때문에 이런 식으로 대답 할 것입니다.
"컴퓨터"란 무엇을 의미합니까? 많은 정의가 있지만, 과학으로서의 컴퓨터 과학에서 가장 일반적인 것은 튜링 머신입니다.
튜링 머신은 상태 설정, 전환 테이블, 정지 설정 및 토론에 중요한 알파벳이라는 여러 측면으로 정의됩니다. 이 알파벳은 기계가 입력으로 읽을 수 있고 테이프에 쓸 수있는 기호를 나타냅니다. (입력 및 테이프 알파벳이 다를 수 있지만 지금은 걱정하지 마십시오.)
따라서 입력 알파벳 또는 { a , b } 또는 { 0 , 1 , 2 } 또는 { ↑ , ↓ } 로 Turing 기계를 만들 수 있습니다 . 중요하지 않습니다. 사실, 나는 데이터를 인코딩하기 위해 선택한 모든 알파벳을 사용할 수 있습니다.
그래서 저는 이 9라고 말할 수 있습니다. 또는 ↑ ↑ ↑ ↓ ↑ ↑ ↓ 는 9 라고 말할 수 있습니다. 그것들은 우리가 구별 할 수있는 단순한 기호이기 때문에 중요하지 않습니다.
트릭은 바이너리가 충분하다는 것입니다. 모든 비트 시퀀스는 숫자로 해석 될 수 있으므로 바이너리에서 다른 시스템으로 또는 그 반대로 변환 할 수 있습니다.
그러나 단항도 충분하다는 것이 밝혀졌습니다. 9를 111111111로 인코딩 할 수 있습니다.이 방법은 특히 효율적이지는 않지만 계산 능력은 동일합니다.
Lambda 미적분학과 같은 대체 계산 모델을 살펴보면 상황이 훨씬 더 복잡해집니다. 여기에서 숫자를 함수로 볼 수 있습니다. 실제로 모든 것을 함수로 볼 수 있습니다. 사물은 비트, 0 및 1로 인코딩되지 않고 변경 가능한 상태가없는 닫힌 수학 함수로 인코딩됩니다. 이 방법으로 숫자 를 어떻게 할 수 있는지 교회 숫자 를 참조하십시오 .
요점은 0과 1은 완전히 하드웨어 관련 문제이며 선택은 임의적입니다. 사용중인 인코딩은 운영 체제 나 네트워킹과 같은 몇 가지 하위 필드 이외의 컴퓨터 과학과 관련이 없습니다.
고려해야 할 몇 가지 사항 :
이진수 시스템을 사용하는 이유 중 하나는 선형이 아니라 로그로 숫자를 표현할 수있는 가장 낮은 기본 수 시스템이기 때문입니다. 의적으로 구별 단항 다른 숫자 표현의 평균 길이는 적어도 비례 있어야 N 길이의 한 문자열이 있기 때문에, K K < N은 ; 1 + 1 + . . . + 1 = n 입니다. 이진수에서 n 개의 다른 숫자 를 고유하게 구분하려면 평균 표현 길이가 최소 log 2에 비례해야합니다. , 있기 때문에 2 K 길이의 이진수 k는 ; 1 + 2 + . . . + n + 1입니다. 더 큰베이스를 선택하면 일정한 요구 사항으로 공간 요구 사항이 향상됩니다. 베이스 (10)는 얻을 수N의 평균 표현 길이 번호를로그(10)N이며,로그(10)이≈0.3모두를위한 기반이 표현의 배의 평균 길이를N. 이진수와 단항의 차이는 훨씬 큽니다. 사실, 그것은n의 함수입니다. 단항보다 이진을 선택하면 많은 것을 얻을 수 있습니다. 비교할 때 더 높은 염기를 선택하면 훨씬 적게 얻을 수 있습니다.
두 상태 만 구별하면 디지털 로직을 구현하는 것이 더 쉽다는 아이디어가 있습니다. 전기 신호는 아날로그이므로 원하는만큼 많은 이산 상태를 나타내는 것으로 해석 할 수 있지만 동일한 범위에서 더 많은 상태를 안정적으로 구별하려면보다 정밀하고 고가의 하드웨어가 필요합니다. 이것은 가능한 한 낮은베이스를 선택하는 것을 제안합니다.
: 다른 잠재적으로 중요한 고려 로직 고전 개의 고유 값 포함하는 것으로 이해되어 있다는 것이다 및 F L 의 전자 . 이제 우리는 이것보다 더 멋진 논리를 가지고 있지만 많은 수학과 과학은 여전히 꽤 기초적인 개념에 있습니다. 컴퓨터가 계산에 사용되고 논리가 계산에 중요하다는 것을 고려할 때 적어도 두 가지 별개의 상태를 잘 지원할 것을 제안하지만 논리에는 실제로 그 이상이 필요하지 않습니다.
대부분의 컴퓨터 회로가 두 가지 상태를 사용하는 가장 큰 이유 중 하나는 n 개의 서로 다른 전압 레벨 을 구별하는 데 필요한 회로의 양이 n -1에 대략 비례하기 때문 입니다. 결과적으로, 식별 가능한 3 개의 상태를 갖는 것은 신호 당 2 배의 회로를 필요로하고, 4를 갖는 것은 3 배의 시간을 요구할 것이다. 정보의 양을 두 배로 늘리면서 회로의 양을 세 배로 늘리면 효율성이 저하 될 수 있습니다.
컴퓨터에는 요소 당 두 개 이상의 상태를 사용하여 정보가 저장되거나 통신되는 곳이 있습니다. 플래시 메모리 어레이에서, 한 세트의 레벨 감지 회로에 의해 수백 또는 수천 개의 메모리 셀이 서비스 될 수있다. 특정 양의 정보를 저장할 때 2 개가 아닌 4 개 레벨을 사용하면 레벨 감지 회로의 크기가 3 배 이상 증가 할 수 있지만 필요한 메모리 셀 수는 절반으로 줄어 듭니다. 100-base-T 이상의 이더넷을 통해 통신 할 때 케이블에서 여러 신호 레벨을 감지하는 데 필요한 회로 비용은 더 많은 전선이있는 케이블을 사용하거나 더 많은 케이블을 처리해야하는 비용으로 인해 줄어들 수 있습니다. 허용 할 수없는 수준의 왜곡없이 초당 신호 전이.
연구실에는 q와 비트를 동시에 기본 정보 단위로 사용하는 양자 컴퓨터가 있습니다.
http://en.wikipedia.org/wiki/Quantum_computer
이 참고 문헌에 따라 3 진 양자 컴퓨터도 구축되었습니다. http://en.wikipedia.org/wiki/Ternary_computer
따라서 이진수 시스템에 의존하지 않는 대체 컴퓨팅 장치를 구축 할 수 있습니다. 예를 들어 광섬유 시스템은 0과 1, -1의 두 가지 다른 직교 편광에 0을 사용합니다.
내가 이런 것들을 언급하는 이유는 이진수가 컴퓨팅에는 충분하지만 컴퓨팅에 사용할 수있는 대체 숫자 시스템이 있음을 보여주고 싶기 때문입니다.
이진수 시스템은 이러한 의미에서 근사 합니다. 숫자의 기수 표현을 사용하여 모든 정수 를 인코딩 할 수 있습니다 . http : // en.wikipedia.org/wiki/Radix이 값은 ASCII 코드 A = 0x41 = 01000001을 나타내거나 기계 명령어 nop = 0x90 = 0x10010000을 나타낼 수 있습니다.
디지털 컴퓨터의 핵심 프로세싱 파워는 스위치처럼 작동하는 트랜지스터입니다. 스위치의 "게이트"에서 전류를 올리면 "콜렉터"와 "이미 터"사이에 전류가 흐를 수 있습니다. 스위치가 켜집니다. 트랜지스터는 두 가지 모드 중 하나 (완전히 켜짐 또는 완전 꺼짐 ( '포화'))에서 작동하도록 설계되어 해당 상태를 명확하게 구분합니다. 트랜지스터는 두 상태 사이를 빠르게 전환 할 수 있으며 오류가 매우 적은 상태로 유지됩니다.
이 회로는 AND, NAND, OR, XOR 및 기타 기능과 같은 논리 장치의 기초를 형성합니다. NAND 기능은 가장 기본적인 빌딩 블록입니다. 이러한 논리 장치는 예측 가능한 상태로 유지되는 프로세서를 제공하도록 조립되며 필요한 공간을 제공하기 위해 많은 공간에서 작은 트랜지스터를 포장 할 수 있습니다.
트랜지스터는 여러 상태 또는 다양한 상태를 관리 할 수 있지만, 이러한 방식으로 작동 할 때는 기존의 "디지털"컴퓨터를 생산하지 않습니다. 예측 가능한 상태를 유지하지 않는 경향이 있으며 간섭, 채도, 오실 레이션 등의 경향이 있습니다. 그들은 계산 능력 측면에서 응용이 제한되어 있습니다. 연산 증폭기는 아날로그 컴퓨터로 간주 될 수 있습니다.
현재 2 개 이상의 가능한 상태를 안정적으로 유지할 수있는 "스위치"를 만드는 기술이 없기 때문에 binary (1,0) 만 사용합니다. (Quantum 컴퓨터는 현재 정확히 판매되지는 않습니다.) 바이너리 시스템은 전류의 존재를 결석 전류와 구별하기가 쉽기 때문에, 특히 수조 개의 연결로 작업 할 때에 만 선택되었습니다. 그리고이 시스템에서 다른 숫자 기반을 사용하는 것은 말도 안됩니다. 왜냐하면 시스템은 끊임없이 그들 사이를 변환해야하기 때문입니다. 그것이 전부입니다.