Чому комп'ютери використовують систему двійкових чисел (0,1)?


31

Чому комп'ютери використовують систему двійкових чисел (0,1)? Чому замість цього вони не використовують термінальну систему числення (0,1,2) або будь-яку іншу систему числення?


9
Це питання щодо електротехніки. Мабуть, двійкові ворота легше здійснити. IIRC в якийсь момент був побудований комп'ютер на основі потрійних технологій.
Yuval Filmus

7
Які дослідження ви провели? Коли я набираю назву вашого питання в Google, я отримую результати пошуку, які містять кілька відповідей на ваше запитання. Також стаття у Вікіпедії про двійкові числа та двійковий код має коротке пояснення. Ми очікуємо, що ви зробите значну кількість досліджень, перш ніж запитати тут, і мені здається, що ви ще не провели навіть базових досліджень, перш ніж запитувати. Пошук у Google та Вікіпедії - мінімальний мінімум.
DW

Більші бази не виявилися корисними в цілому.
Рафаель

@Raphael: Ternary did
Mooing Duck

2
Я збираюся поставити це як коментар, оскільки вже є прийнята відповідь. Надзвичайно складно побудувати електронні пристрої, які надійно розмежовують десять значень через допуски до виготовлення. Побудувати електронні пристрої, які розрізняють два значення, порівняно просто. Отже, коротка відповідь - комп’ютери використовують бінарне представлення для надійності . Я написав більш детальну відповідь для тих, хто може хвилювати: bbrown.kennesaw.edu/papers/why_binary.html
Боб Браун

Відповіді:


31

Оскільки ми в галузі інформатики, я відповім так: вони цього не роблять.

Що ми маємо на увазі під "комп'ютером?" Визначень багато, але в інформатиці як науці найпоширенішою є машина Тюрінга.

Машина Тьюрінга визначається декількома аспектами: набір стану, таблиця переходу, набір зупинок і важливий для нашого обговорення алфавіт. Цей алфавіт позначає символи, які машина може читати як вхідні дані, і що вони можуть записувати на свою стрічку. (Ви можете мати різні алфавіти введення та стрічки, але давайте не будемо хвилюватися з цього приводу.)

Отже, я можу зробити машину Тюрінга з алфавітом введення , або , або , або . Це не має значення. Справа в тому, що я можу використовувати будь-який алфавіт, який я вибрав для кодування даних.{ a , b } { 0 , 1 , 2 } { , }{0,1}{a,b}{0,1,2}{,}

Отже, я можу сказати, що - це 9, або я можу сказати, що - це 9. Не має значення, оскільки вони є просто символами, які ми можемо виділити.0001001↑↑↑↓↑↑↓

Хитрість полягає в тому, що бінарного достатньо. Будь-яка послідовність бітів може бути інтерпретована як число, тому ви можете конвертувати з двійкових у будь-яку іншу систему і назад.

Але, виявляється, одинарних теж достатньо. Ви можете кодувати 9 як 111111111. Це не особливо ефективно, але він має однакову обчислювальну потужність.

Речі стають ще божевільнішими, коли ви дивитесь на альтернативні моделі обчислення, як-от обчислення Ламбди. Тут ви можете переглядати числа як функції. Насправді ви можете розглядати все як функції. Речі кодуються не як біти, 0 і 1, а як закриті математичні функції без змін стану. Дивіться церковні цифри, як можна робити числа таким чином.

Справа в тому, що 0 і 1 є цілком конкретним обладнанням, і вибір є довільним. Те, що ви використовуєте, кодування не особливо актуально для інформатики, за межами кількох підполів, таких як операційна система чи мережа.


А як щодо кодування входів у 2-лічильних машинах. Здається, має значення. Ви впевнені, що можете відхилити такі радикальні проблеми кодування? І я навряд чи погоджуюся, що складність - це не питання; але чи є лямбда-числення правильним способом вирішення цього питання?
babou

Я визнаю, що виникають проблеми зі складністю, коли ви користуєтеся одинарними. Але вибір бінарних проти потрійних чи чогось подібного є дещо довільним. Це не так, як вибір кодування не має значення, але немає закону, який диктує, чому ми використовуємо той чи інший. Це здебільшого продиктовано зручністю або вимогами до апаратних засобів, які дещо поза межами обчислювальної науки.
jmite

1
"Отже, я можу зробити машину Тюрінга з алфавітом введення". Я думаю, ви повинні написати "стрічку алфавіту" тут, а не "введення алфавіту". Цікава частина - це те, що використовується для обчислення, а не для введення. Крім того, я не погоджуюся з тим, що достатньо унарного. ТМ з одинарним алфавітом стрічки майже марний, тому що стрічка є постійною.
Simon S

Щодо останнього речення: дизайн та вивчення комп'ютерного обладнання та архітектури також є частиною інформатики.
Kaveh

2
Ви можете додати те, що перехід від унарних до двійкових скорочує розмір ваших чисел до їх логарифму, що є серйозним поліпшенням, а йти далі не набирає стільки (лише лінійний коефіцієнт).
reinierpost

23

Ще деякі речі, які слід врахувати:

Частина причини використання двійкової системи числення полягає в тому, що це система найменших базових чисел, яка може представляти числа в логарифмічному, а не лінійному просторі. Щоб однозначно розрізнити різних чисел в одинарних, середня довжина представлень повинна бути пропорційною принаймні , оскільки є лише одна струна довжиною де ; . Щоб однозначно розрізнити різних чисел у двійкових, середня довжина подань повинна бути пропорційною щонайменше , оскільки є двійкові числа довжиною ;n k k < n 1 + 1 + . . . + 1 = n n log 2 n 2 k k 1 + 2 + . . . + n + 1nnkk<n1+1+...+1=nnlog2n2kknlog10nlog1020,3nn1+2+...+n+12=n . Вибір більшої основи покращує потребу в просторі постійним фактором; база 10 отримує чисел із середньою довжиною подання , що рази перевищує середню довжину базового двох представлень для всіх . Різниця між бінарними та одинарними значно більша; насправді це функція . Ви отримуєте багато, вибираючи бінарне над одинарним; ви отримуєте набагато менше, обираючи більш високу базу, порівняно.nlog10nlog1020.3nn

Існує деяка правда в ідеї, що простіше реалізувати цифрову логіку, якщо нам доведеться розрізняти лише два стани. Електричні сигнали є аналоговими і, таким чином, можуть бути інтерпретовані таким чином, щоб представляти стільки дискретних станів, скільки б вам хотілося ..., але вам потрібно більш точне (отже, дороге і витончене) апаратне забезпечення, щоб надійно розрізнити більше станів в одному діапазоні. Це говорить про вибір якнайменшої бази.

truefalse


9

Однією з головних причин того, що більшість комп'ютерних мікросхем використовують два стани, полягає в тому, що кількість схем, необхідних для розрізнення n різних рівнів напруги, приблизно пропорційна n -1. Отже, наявність трьох помітних станів потребує вдвічі більшої схеми за сигнал, а наявність чотирьох потребує втричі більше. Потроєння кількості мікросхем при одночасному подвоєнні кількості інформації означатиме втрату ефективності.

Зауважте, що в комп’ютерах є місця, де інформація зберігається або передається, використовуючи більше двох станів на елемент. У масиві флеш-пам'яті сотні або тисячі комірок пам'яті можуть обслуговуватися одним набором схеми зондування рівня. Використання чотирьох рівнів на клітинку, а не два під час зберігання певного обсягу інформації може втричі перевищити розмір схеми зондування рівня, але скоротить удвічі менше необхідної кількості комірок пам'яті. Під час спілкування через 100-базовий T або швидший Ethernet, вартість схеми, необхідної для виявлення декількох рівнів сигналу на кабелі, ймовірно, буде зменшена за рахунок витрат або на використання кабелю з більшою кількістю проводів, або на використання кабелів, які можуть працювати більше переходи сигналу в секунду без неприйнятного рівня спотворень.


9

У дослідницьких лабораторіях існують квантові комп'ютери, які використовують q-біт як основну одиницю інформації, яка може бути як 0, так і 1 одночасно.
http://en.wikipedia.org/wiki/Quantum_computer

Були також побудовані потрійні квантові комп'ютери відповідно до цієї посилання http://en.wikipedia.org/wiki/Ternary_computer

Отже, справді можливо побудувати альтернативні обчислювальні пристрої, які не покладаються на систему двійкових чисел. Наприклад, волоконно-оптичні системи використовують 0 для темного та двох різних ортоганальних поляризацій світла як 1 і -1.

Причина, чому я згадую ці речі, полягає в тому, що я хочу показати, що хоча двійкові числа є достатніми для обчислень, існують альтернативні системи числення, які можна використовувати для обчислень.

xZ


3
Але вони все ще використовують двійкову систему, в квантових обчисленнях стан суперпозиції не є третім можливим значенням. Також викидання квантового прикладу обчислень не допомагає поставленому питанню.
lPlant

Я про це не знав ..
Ali786,

"q-біт як основна одиниця інформації, яка може бути одночасно 0 і 1." Це нісенітниця. Кубіти принципово відрізняються від звичайних бітів тим, що вони представляють недискретне (складне) значення. Вони незрівнянні для всіх практичних цілей.
Дискретна ящірка

3

В основі цифрових комп'ютерів, що обробляють потужність, лежить транзистор, який працює як комутатор. Підвищуючи струм на «воротах» вимикача, він дозволяє струму текти між «колектором» і «випромінювачем» - вимикач увімкнено. Транзистор буде розроблений для роботи в одному з двох режимів - повністю включеному або повністю вимкненому («насиченому»), з чітким поділом того, що ці стани. Транзистор може швидко перемикатися між двома станами, залишатиметься в стані з дуже обмеженими помилками.

Ця схема є основою для логічних пристроїв, таких як AND, NAND, OR, XOR та інші функції. Функція NAND є основним з будівельних блоків. Ці логічні пристрої зібрані для забезпечення процесорів, які залишаються в передбачуваному стані, і багато транзисторів можуть бути упаковані у невеликому просторі, щоб забезпечити необхідну функціональність.

Транзистор може керувати декількома або різними станами, але, працюючи таким чином, вони не виробляють звичайних "цифрових" комп'ютерів - вони не прагнуть залишатися в передбачуваному стані і схильні до перешкод, насичення, коливань тощо - так вони мають обмежене застосування з точки зору обчислювальних можливостей. Оп-підсилювачі можна вважати аналоговими комп'ютерами.


-3

Ми використовуємо лише двійковий (1,0), оскільки в даний час у нас немає технології для створення «комутаторів», які б надійно вміщували більше двох можливих станів. (Квантові комп'ютери наразі не продаються.) Бінарну систему обрали лише тому, що відрізнити наявність електричного струму від відсутності електричного струму досить просто, особливо при роботі з трильйонами таких з'єднань. І використовувати будь-яку іншу базу чисел у цій системі смішно, бо системі потрібно постійно конвертувати між ними. Це все, що там є.


2
Це правда, але чи не все це вже включено в існуючі відповіді?
Девід Річербі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.