Dlaczego komputery używają binarnego systemu liczb (0,1)?

31

Dlaczego komputery używają binarnego systemu liczb (0,1)? Dlaczego zamiast tego nie używają Ternary Number System (0,1,2) lub innego systemu liczb?

Rai Ammad Khan
źródło
9
To pytanie dotyczy elektrotechniki. Najwyraźniej bramki binarne są łatwiejsze do wdrożenia. IIRC w pewnym momencie zbudowano jakiś komputer trójskładnikowy.
Yuval Filmus
7
Jakie badania przeprowadziłeś? Gdy wpisuję tytuł Twojego pytania w Google, otrzymuję wyniki wyszukiwania, które zawierają kilka odpowiedzi na Twoje pytanie. Ponadto artykuł Wikipedii na temat liczb binarnych i kodu binarnego zawiera krótkie wyjaśnienie. Oczekujemy, że przeprowadzisz znaczną liczbę badań przed zapytaniem tutaj i wydaje mi się, że nie przeprowadziłeś nawet podstawowych badań przed zapytaniem. Przeszukiwanie Google i Wikipedii to absolutne minimum.
DW
Większe bazy nie okazały się ogólnie przydatne.
Raphael
@Raphael: Ternary zrobił
Mooing Duck
2
Zamieszczę to jako komentarz, ponieważ istnieje już akceptowana odpowiedź. Niezwykle trudno jest zbudować urządzenia elektroniczne, które niezawodnie rozróżniają dziesięć wartości ze względu na tolerancje produkcyjne. Stosunkowo łatwe jest budowanie urządzeń elektronicznych, które rozróżniają dwie wartości. Krótka odpowiedź brzmi: komputery używają reprezentacji binarnej dla zapewnienia niezawodności . Napisałem bardziej szczegółową odpowiedź dla tych, którzy mogą się tym przejmować: bbrown.kennesaw.edu/papers/why_binary.html
Bob Brown

Odpowiedzi:

31

Ponieważ zajmujemy się informatyką, odpowiem w ten sposób: nie.

Co rozumiemy przez „komputer”? Istnieje wiele definicji, ale w informatyce jako nauce najczęstszą jest maszyna Turinga.

Maszynę Turinga definiuje kilka aspektów: zestaw stanów, tabela przejściowa, zestaw zatrzymania i ważny dla naszej dyskusji alfabet. Ten alfabet odnosi się do symboli, które urządzenie może odczytać jako dane wejściowe i które może zapisać na swojej taśmie. (Możesz mieć różne alfabety wejściowe i taśmowe, ale na razie się tym nie martw.)

Mogę więc zrobić maszynę Turinga z alfabetem wejściowym lub { a , b } lub { 0 , 1 , 2 } lub { , } . To nie ma znaczenia Faktem jest, że mogę używać dowolnego alfabetu do kodowania danych.{0,1}{a,b}{0,1,2}{,}

Mogę więc powiedzieć, że to 9, lub mogę powiedzieć, że wynosi 9. To nie ma znaczenia, ponieważ są to tylko symbole, które możemy rozróżnić.0001001↑↑↑↓↑↑↓

Sztuka polega na tym, że wystarczy plik binarny. Dowolną sekwencję bitów można interpretować jako liczbę, dzięki czemu można konwertować dane binarne na dowolny inny system i odwrotnie.

Ale okazuje się, że jedno uncja też wystarczy. Możesz zakodować 9 jako 111111111. Nie jest to szczególnie wydajne, ale ma tę samą moc obliczeniową.

Sprawy stają się jeszcze bardziej szalone, gdy spojrzysz na alternatywne modele obliczeń, takie jak rachunek Lambda. Tutaj możesz przeglądać liczby jako funkcje. W rzeczywistości możesz zobaczyć wszystko jako funkcje. Rzeczy są kodowane nie jako bity, 0 i 1, ale jako zamknięte funkcje matematyczne bez stanu zmiennego. Zobacz cyfry Kościoła, aby dowiedzieć się, jak możesz robić liczby w ten sposób.

Chodzi o to, że 0 i 1 to kwestia całkowicie sprzętowa, a wybór jest dowolny. To, jakiego kodowania używasz, nie ma szczególnego znaczenia w informatyce, poza kilkoma dziedzinami takimi jak systemy operacyjne lub sieci.

jmite
źródło
Co z kodowaniem wejściowym w maszynach z 2 licznikami. To wydaje się mieć znaczenie. Czy na pewno możesz odrzucić tak radykalne problemy z kodowaniem? I raczej nie zgodziłbym się, że złożoność nie jest problemem; ale czy rachunek lambda jest właściwym sposobem rozwiązania tego problemu?
babou
Przyznaję, że kiedy używasz unarnego, występują problemy ze złożonością. Ale wybór binarny vs. trójskładnikowy lub cokolwiek podobnego jest nieco arbitralny. To nie jest tak, że wybór kodowania nie ma znaczenia, ale nie ma żadnego prawa dyktującego, dlaczego używamy konkretnego. Jest to podyktowane głównie wygodą lub wymaganiami sprzętowymi, które są nieco poza nauką obliczeniową.
jmite
1
„Więc mogę zrobić maszynę Turinga z wprowadzonym alfabetem”. Myślę, że powinieneś napisać tutaj „alfabet taśmy” zamiast „alfabet wejściowy”. Interesującą częścią jest to, co służy do obliczeń, a nie do wprowadzania danych. Co więcej, nie zgadzam się z wystarczającą jednością. TM z jednorzędowym alfabetem taśmy jest prawie bezużyteczna, ponieważ taśma jest stała.
Simon S
W odniesieniu do ostatniego zdania: projektowanie i badanie sprzętu komputerowego i architektury są również częścią informatyki.
Kaveh
2
Możesz dodać punkt, w którym przejście od jednoargumentowego do dwójkowego zmniejsza rozmiar twoich liczb do ich logarytmu, co jest poważną poprawą, a idąc dalej nie zyskujesz tyle (tylko współczynnik liniowy).
reinierpost
23

Kilka innych rzeczy do rozważenia:

nnkk<n1+1+...+1=nnlog2n2kk1+2+...+n+12=nnlog10nlog1020.3nn

Istnieje pewna prawda, że ​​łatwiej jest zaimplementować logikę cyfrową, jeśli musimy rozróżnić tylko dwa stany. Sygnały elektryczne są analogowe i jako takie mogą być interpretowane jako reprezentujące tyle dyskretnych stanów, ile chcesz ... ale potrzebujesz bardziej precyzyjnego (stąd kosztownego i wybrednego) sprzętu, aby niezawodnie rozróżnić więcej stanów w tym samym zakresie. Sugeruje to wybranie możliwie najniższej bazy.

truefalse

Patrick87
źródło
9

Jednym z głównych powodów, dla których większość obwodów komputerowych wykorzystuje dwa stany, jest to, że ilość obwodów niezbędnych do rozróżnienia n różnych poziomów napięcia jest w przybliżeniu proporcjonalna do n -1. W związku z tym posiadanie trzech dostrzegalnych stanów wymagałoby dwa razy więcej obwodów na sygnał, a posiadanie czterech wymagałoby trzy razy więcej. Potrojenie ilości obwodów przy jednoczesnym podwojeniu ilości informacji oznaczałoby spadek wydajności.

Należy pamiętać, że w komputerach są miejsca, w których informacje są przechowywane lub przekazywane przy użyciu więcej niż dwóch stanów na element. W macierzy pamięci flash setki lub tysiące komórek pamięci może być obsługiwanych przez jeden zestaw obwodów wykrywających poziom. Użycie czterech poziomów na komórkę zamiast dwóch przy przechowywaniu pewnej ilości informacji może więcej niż potroić rozmiar obwodu wykrywającego poziom, ale zmniejszy o połowę wymaganą liczbę komórek pamięci. Podczas komunikowania się za pośrednictwem sieci Ethernet o 100 stacjach bazowych lub wyższej, koszt zespołu obwodów niezbędnych do wykrycia wielu poziomów sygnału na kablu będzie prawdopodobnie niższy niż koszt konieczności użycia kabla z większą liczbą przewodów lub użycia kabli, które mogą obsłużyć więcej przejścia sygnału na sekundę bez niedopuszczalnego poziomu zniekształceń.

supercat
źródło
9

W laboratoriach badawczych istnieją komputery kwantowe, które wykorzystują q-bit jako podstawową jednostkę informacji, która może wynosić jednocześnie 0 i 1.
http://en.wikipedia.org/wiki/Quantum_computer

Istnieją również trójskładnikowe komputery kwantowe zbudowane zgodnie z tym odnośnikiem http://en.wikipedia.org/wiki/Ternary_computer

Tak więc rzeczywiście można zbudować alternatywne urządzenia obliczeniowe, które nie opierają się na systemie liczb binarnych. Na przykład systemy światłowodowe wykorzystują 0 do ciemności i dwie różne ortoganalne polaryzacje światła jako 1 i -1.

Powodem, dla którego wspominam o tych rzeczach, jest to, że chcę pokazać, że chociaż liczby binarne są wystarczające do obliczeń, istnieją alternatywne systemy liczbowe, których można użyć do obliczeń.

The binary number system is nice in these sense we can encode all integers xZ by using radix representation of numbers. http:// en.wikipedia.org/wiki/Radix These values can represent the ASCII code A=0x41=01000001, or the value could represent a machine instruction nop=0x90=0x10010000.

Gary D.
źródło
3
But they are still using a binary system, in quantum computing the state of superposition is not a third possible value. Also throwing out a quantum computing example is not helpful to the question asked.
lPlant
I didn't know about this..
Ali786
"q-bit as the basic unit of information that can be both 0 and 1 simultaneously." This is nonsense. Qubits are fundamentally different from normal bits, in that they represent a non-discrete (complex) value. They are incomparable for all practical purposes.
Discrete lizard
3

At the heart of the digital computers processing power is a transistor, which works like a switch. By raising the current at at the "gate" of the switch, it allows current to flow between the "collector" and "emitter" - the switch is turned on. The transistor will be designed to operate in one of two modes - fully on or fully off ('saturated') - with a clear division of what those states are. The transistor can switch between the two states quickly, will remain in the state with very limited errors.

This circuitry forms the basis for logic devices, such AND, NAND, OR, XOR and other functions. The NAND function being the most basic of the building blocks. These logic devices are assembled to provide processors which remain in a predictable state, and lots of transistors can be packed in a small space to provide the functionality needed.

A transistor can manage multiple, or varying states, but when operating in that manner they do not produce conventional "digital" computers - they do not tend to stay in a predictable state and they are prone to interference, saturation, osculation, etc - so they have limited applications in terms of computational abilities. Op-amps could be considered analog computers.

peeldog
źródło
-3

We only use binary(1,0) because we currently do not have the technology to create "switches" that can reliably hold more than two possible states. (Quantum computers aren't exactly on sale at the moment.) The binary system was chosen only because it is quite easy to distinguish the presence of an electric current from an absense of electric current, especially when working with trillions of such connections. And using any other number base in this system ridiculous, because the system would need to constantly convert between them. That's all there is to it.

Irfan Khan
źródło
2
This is true but isn't it all already included in the existing answers?
David Richerby