컴퓨터가 이진수 시스템 (0,1)을 사용하는 이유는 무엇입니까?


31

컴퓨터가 이진수 시스템 (0,1)을 사용하는 이유는 무엇입니까? 왜 대신 3 차 숫자 체계 (0,1,2) 또는 다른 숫자 체계를 사용하지 않습니까?


9
이것은 전기 공학에 관한 질문입니다. 분명히 이진 게이트는 구현하기가 더 쉽습니다. IIRC는 일부 3 진 기반 컴퓨터가 어느 시점에 구축되었습니다.
Yuval Filmus

7
어떤 연구를 했습니까? 질문 제목을 Google에 입력하면 질문에 대한 몇 가지 답변을 제공하는 검색 결과가 다시 나타납니다. 또한 이진 숫자이진 코드 에 대한 Wikipedia 기사에 간단한 설명이 있습니다. 우리는 당신이 여기에 묻기 전에 상당한 양의 연구 를 할 것을 기대 하며 , 당신이 묻기 전에 기본 연구조차하지 않은 것처럼 보입니다. 구글과 위키 백과를 검색하는 것은 최소한입니다.
DW

더 큰 기지는 전반적으로 유용한 것으로 판명되지 않았습니다.
Raphael

@Raphael : Ternary 님
Mooing Duck

2
나는 이미 받아 들여진 대답이 있기 때문에 이것을 주석으로 넣을 것입니다. 제조 공차로 인해 10 가지 값을 확실하게 구별하는 전자 장치를 구축하는 것은 매우 어렵습니다. 두 값을 구별하는 전자 장치를 만드는 것은 비교적 쉽습니다. 따라서 짧은 대답은 컴퓨터가 안정성을 위해 이진 표현을 사용한다는 것입니다 . : 난 상관 할 수 있습니다 사람들을 위해보다 상세한 답변을 작성했습니다 bbrown.kennesaw.edu/papers/why_binary.html
밥 브라운

답변:


31

우리는 컴퓨터 과학 분야에 있기 때문에 이런 식으로 대답 할 것입니다.

"컴퓨터"란 무엇을 의미합니까? 많은 정의가 있지만, 과학으로서의 컴퓨터 과학에서 가장 일반적인 것은 튜링 머신입니다.

튜링 머신은 상태 설정, 전환 테이블, 정지 설정 및 토론에 중요한 알파벳이라는 여러 측면으로 정의됩니다. 이 알파벳은 기계가 입력으로 읽을 수 있고 테이프에 쓸 수있는 기호를 나타냅니다. (입력 및 테이프 알파벳이 다를 ​​수 있지만 지금은 걱정하지 마십시오.)

따라서 입력 알파벳 또는 { a , b } 또는 { 0 , 1 , 2 } 또는 { , } 로 Turing 기계를 만들 수 있습니다 . 중요하지 않습니다. 사실, 나는 데이터를 인코딩하기 위해 선택한 모든 알파벳을 사용할 수 있습니다.{0,1}{a,b}{0,1,2}{,}

그래서 저는 이 9라고 말할 수 있습니다. 또는 는 9 라고 말할 수 있습니다. 그것들은 우리가 구별 할 수있는 단순한 기호이기 때문에 중요하지 않습니다.0001001↑↑↑↓↑↑↓

트릭은 바이너리가 충분하다는 것입니다. 모든 비트 시퀀스는 숫자로 해석 될 수 있으므로 바이너리에서 다른 시스템으로 또는 그 반대로 변환 할 수 있습니다.

그러나 단항도 충분하다는 것이 밝혀졌습니다. 9를 111111111로 인코딩 할 수 있습니다.이 방법은 특히 효율적이지는 않지만 계산 능력은 동일합니다.

Lambda 미적분학과 같은 대체 계산 모델을 살펴보면 상황이 훨씬 더 복잡해집니다. 여기에서 숫자를 함수로 볼 수 있습니다. 실제로 모든 것을 함수로 볼 수 있습니다. 사물은 비트, 0 및 1로 인코딩되지 않고 변경 가능한 상태가없는 닫힌 수학 함수로 인코딩됩니다. 이 방법으로 숫자 를 어떻게 할 수 있는지 교회 숫자 를 참조하십시오 .

요점은 0과 1은 완전히 하드웨어 관련 문제이며 선택은 임의적입니다. 사용중인 인코딩은 운영 체제 나 네트워킹과 같은 몇 가지 하위 필드 이외의 컴퓨터 과학과 관련이 없습니다.


2 카운터 시스템의 입력 인코딩은 어떻습니까? 중요한 것 같습니다. 그렇게 근본적으로 인코딩 문제를 무시할 수 있습니까? 그리고 나는 복잡성이 문제가 아니라는 것에 거의 동의하지 않을 것입니다. 그러나 람다 미적분이 그것을 다루는 적절한 방법입니까?
babou

단항을 사용할 때 복잡성 문제가 있음을 인정합니다. 그러나 이진 대 삼항 또는 이와 유사한 것을 선택하는 것은 다소 임의적입니다. 인코딩 선택이 중요하지는 않지만 특정 코드를 사용하는 이유를 규정하는 법은 없습니다. 그것은 주로 편의 또는 하드웨어 요구 사항에 의해 결정되며, 계산 과학의 외부에 있습니다.
jmite

1
"따라서 입력 알파벳으로 튜링 기계를 만들 수 있습니다". "입력 알파벳"대신 "테이프 알파벳"을 작성해야한다고 생각합니다. 흥미로운 부분은 입력이 아닌 계산에 사용되는 것입니다. 게다가 나는 단항 한 것으로 충분하지 않다. 테이프가 일정하기 때문에 단항 테이프 알파벳이있는 TM은 거의 쓸모가 없습니다.
Simon S

마지막 문장 : 컴퓨터 하드웨어 및 아키텍처의 설계 및 연구는 컴퓨터 과학의 일부입니다.
Kaveh

2
단항에서 이진수로 이동하면 숫자의 크기가 로그로 줄어드는 점을 추가 할 수 있습니다.
reinierpost

23

고려해야 할 몇 가지 사항 :

이진수 시스템을 사용하는 이유 중 하나는 선형이 아니라 로그로 숫자를 표현할 수있는 가장 낮은 기본 수 시스템이기 때문입니다. 의적으로 구별 단항 다른 숫자 표현의 평균 길이는 적어도 비례 있어야 N 길이의 한 문자열이 있기 때문에, K K < N은 ; 1 + 1 + . . . + 1 = n 입니다. 이진수에서 n 개의 다른 숫자 를 고유하게 구분하려면 평균 표현 길이가 최소 log 2에 비례해야합니다.nnkk<n1+1+...+1=nn , 있기 때문에 2 K 길이의 이진수 k는 ; 1 + 2 + . . . + n + 1log2n2kk입니다. 더 큰베이스를 선택하면 일정한 요구 사항으로 공간 요구 사항이 향상됩니다. 베이스 (10)는 얻을 수N의 평균 표현 길이 번호를로그(10)N이며,로그(10)0.3모두를위한 기반이 표현의 배의 평균 길이를N. 이진수와 단항의 차이는 훨씬 큽니다. 사실, 그것은n의 함수입니다. 단항보다 이진을 선택하면 많은 것을 얻을 수 있습니다. 비교할 때 더 높은 염기를 선택하면 훨씬 적게 얻을 수 있습니다.1+2+...+n+12=nnlog10nlog1020.3nn

두 상태 만 구별하면 디지털 로직을 구현하는 것이 더 쉽다는 아이디어가 있습니다. 전기 신호는 아날로그이므로 원하는만큼 많은 이산 상태를 나타내는 것으로 해석 할 수 있지만 동일한 범위에서 더 많은 상태를 안정적으로 구별하려면보다 정밀하고 고가의 하드웨어가 필요합니다. 이것은 가능한 한 낮은베이스를 선택하는 것을 제안합니다.

: 다른 잠재적으로 중요한 고려 로직 고전 개의 고유 값 포함하는 것으로 이해되어 있다는 것이다 F L 전자 . 이제 우리는 이것보다 더 멋진 논리를 가지고 있지만 많은 수학과 과학은 여전히 ​​꽤 기초적인 개념에 있습니다. 컴퓨터가 계산에 사용되고 논리가 계산에 중요하다는 것을 고려할 때 적어도 두 가지 별개의 상태를 잘 지원할 것을 제안하지만 논리에는 실제로 그 이상이 필요하지 않습니다.truefalse


9

대부분의 컴퓨터 회로가 두 가지 상태를 사용하는 가장 큰 이유 중 하나는 n 개의 서로 다른 전압 레벨 을 구별하는 데 필요한 회로의 양이 n -1에 대략 비례하기 때문 입니다. 결과적으로, 식별 가능한 3 개의 상태를 갖는 것은 신호 당 2 배의 회로를 필요로하고, 4를 갖는 것은 3 배의 시간을 요구할 것이다. 정보의 양을 두 배로 늘리면서 회로의 양을 세 배로 늘리면 효율성이 저하 될 수 있습니다.

컴퓨터에는 요소 당 두 개 이상의 상태를 사용하여 정보가 저장되거나 통신되는 곳이 있습니다. 플래시 메모리 어레이에서, 한 세트의 레벨 감지 회로에 의해 수백 또는 수천 개의 메모리 셀이 서비스 될 수있다. 특정 양의 정보를 저장할 때 2 개가 아닌 4 개 레벨을 사용하면 레벨 감지 회로의 크기가 3 배 이상 증가 할 수 있지만 필요한 메모리 셀 수는 절반으로 줄어 듭니다. 100-base-T 이상의 이더넷을 통해 통신 할 때 케이블에서 여러 신호 레벨을 감지하는 데 필요한 회로 비용은 더 많은 전선이있는 케이블을 사용하거나 더 많은 케이블을 처리해야하는 비용으로 인해 줄어들 수 있습니다. 허용 할 수없는 수준의 왜곡없이 초당 신호 전이.


9

연구실에는 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을 나타낼 수 있습니다. xZ


3
그러나 그들은 여전히 ​​이진 시스템을 사용하고 있습니다. 양자 컴퓨팅에서 중첩 상태는 세 번째 가능한 값이 아닙니다. 또한 양자 컴퓨팅 예제를 폐기하는 것은 질문에 도움이되지 않습니다.
l 식물

나는 이것에 대해 몰랐다.
Ali786

"0과 1이 동시에 가능한 기본 정보 단위 인 q- 비트." 이것은 말도 안됩니다. 큐비 트는 비 이산 (복잡) 값을 나타 내기 때문에 기본 비트와 기본 비트가 다릅니다. 그것들은 모든 실제적인 목적과 비교할 수 없습니다.
이산 도마뱀

3

디지털 컴퓨터의 핵심 프로세싱 파워는 스위치처럼 작동하는 트랜지스터입니다. 스위치의 "게이트"에서 전류를 올리면 "콜렉터"와 "이미 터"사이에 전류가 흐를 수 있습니다. 스위치가 켜집니다. 트랜지스터는 두 가지 모드 중 하나 (완전히 켜짐 또는 완전 꺼짐 ( '포화'))에서 작동하도록 설계되어 해당 상태를 명확하게 구분합니다. 트랜지스터는 두 상태 사이를 빠르게 전환 할 수 있으며 오류가 매우 적은 상태로 유지됩니다.

이 회로는 AND, NAND, OR, XOR 및 기타 기능과 같은 논리 장치의 기초를 형성합니다. NAND 기능은 가장 기본적인 빌딩 블록입니다. 이러한 논리 장치는 예측 가능한 상태로 유지되는 프로세서를 제공하도록 조립되며 필요한 공간을 제공하기 위해 많은 공간에서 작은 트랜지스터를 포장 할 수 있습니다.

트랜지스터는 여러 상태 또는 다양한 상태를 관리 할 수 ​​있지만, 이러한 방식으로 작동 할 때는 기존의 "디지털"컴퓨터를 생산하지 않습니다. 예측 가능한 상태를 유지하지 않는 경향이 있으며 간섭, 채도, 오실 레이션 등의 경향이 있습니다. 그들은 계산 능력 측면에서 응용이 제한되어 있습니다. 연산 증폭기는 아날로그 컴퓨터로 간주 될 수 있습니다.


-3

현재 2 개 이상의 가능한 상태를 안정적으로 유지할 수있는 "스위치"를 만드는 기술이 없기 때문에 binary (1,0) 만 사용합니다. (Quantum 컴퓨터는 현재 정확히 판매되지는 않습니다.) 바이너리 시스템은 전류의 존재를 결석 전류와 구별하기가 쉽기 때문에, 특히 수조 개의 연결로 작업 할 때에 만 선택되었습니다. 그리고이 시스템에서 다른 숫자 기반을 사용하는 것은 말도 안됩니다. 왜냐하면 시스템은 끊임없이 그들 사이를 변환해야하기 때문입니다. 그것이 전부입니다.


2
이것은 사실이지만 기존 답변에 모두 포함되어 있지 않습니까?
David Richerby
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.