Чому комп'ютери використовують систему двійкових чисел (0,1)? Чому замість цього вони не використовують термінальну систему числення (0,1,2) або будь-яку іншу систему числення?
Чому комп'ютери використовують систему двійкових чисел (0,1)? Чому замість цього вони не використовують термінальну систему числення (0,1,2) або будь-яку іншу систему числення?
Відповіді:
Оскільки ми в галузі інформатики, я відповім так: вони цього не роблять.
Що ми маємо на увазі під "комп'ютером?" Визначень багато, але в інформатиці як науці найпоширенішою є машина Тюрінга.
Машина Тьюрінга визначається декількома аспектами: набір стану, таблиця переходу, набір зупинок і важливий для нашого обговорення алфавіт. Цей алфавіт позначає символи, які машина може читати як вхідні дані, і що вони можуть записувати на свою стрічку. (Ви можете мати різні алфавіти введення та стрічки, але давайте не будемо хвилюватися з цього приводу.)
Отже, я можу зробити машину Тюрінга з алфавітом введення , або , або , або . Це не має значення. Справа в тому, що я можу використовувати будь-який алфавіт, який я вибрав для кодування даних.{ a , b } { 0 , 1 , 2 } { ↑ , ↓ }
Отже, я можу сказати, що - це 9, або я можу сказати, що - це 9. Не має значення, оскільки вони є просто символами, які ми можемо виділити.↑ ↑ ↑ ↓ ↑ ↑ ↑
Хитрість полягає в тому, що бінарного достатньо. Будь-яка послідовність бітів може бути інтерпретована як число, тому ви можете конвертувати з двійкових у будь-яку іншу систему і назад.
Але, виявляється, одинарних теж достатньо. Ви можете кодувати 9 як 111111111. Це не особливо ефективно, але він має однакову обчислювальну потужність.
Речі стають ще божевільнішими, коли ви дивитесь на альтернативні моделі обчислення, як-от обчислення Ламбди. Тут ви можете переглядати числа як функції. Насправді ви можете розглядати все як функції. Речі кодуються не як біти, 0 і 1, а як закриті математичні функції без змін стану. Дивіться церковні цифри, як можна робити числа таким чином.
Справа в тому, що 0 і 1 є цілком конкретним обладнанням, і вибір є довільним. Те, що ви використовуєте, кодування не особливо актуально для інформатики, за межами кількох підполів, таких як операційна система чи мережа.
Ще деякі речі, які слід врахувати:
Частина причини використання двійкової системи числення полягає в тому, що це система найменших базових чисел, яка може представляти числа в логарифмічному, а не лінійному просторі. Щоб однозначно розрізнити різних чисел в одинарних, середня довжина представлень повинна бути пропорційною принаймні , оскільки є лише одна струна довжиною де ; . Щоб однозначно розрізнити різних чисел у двійкових, середня довжина подань повинна бути пропорційною щонайменше , оскільки є двійкові числа довжиною ;n k k < n 1 + 1 + . . . + 1 = n n log 2 n 2 k k 1 + 2 + . . . + n + 1nlog10nlog102≈0,3nn . Вибір більшої основи покращує потребу в просторі постійним фактором; база 10 отримує чисел із середньою довжиною подання , що рази перевищує середню довжину базового двох представлень для всіх . Різниця між бінарними та одинарними значно більша; насправді це функція . Ви отримуєте багато, вибираючи бінарне над одинарним; ви отримуєте набагато менше, обираючи більш високу базу, порівняно.
Існує деяка правда в ідеї, що простіше реалізувати цифрову логіку, якщо нам доведеться розрізняти лише два стани. Електричні сигнали є аналоговими і, таким чином, можуть бути інтерпретовані таким чином, щоб представляти стільки дискретних станів, скільки б вам хотілося ..., але вам потрібно більш точне (отже, дороге і витончене) апаратне забезпечення, щоб надійно розрізнити більше станів в одному діапазоні. Це говорить про вибір якнайменшої бази.
Однією з головних причин того, що більшість комп'ютерних мікросхем використовують два стани, полягає в тому, що кількість схем, необхідних для розрізнення n різних рівнів напруги, приблизно пропорційна n -1. Отже, наявність трьох помітних станів потребує вдвічі більшої схеми за сигнал, а наявність чотирьох потребує втричі більше. Потроєння кількості мікросхем при одночасному подвоєнні кількості інформації означатиме втрату ефективності.
Зауважте, що в комп’ютерах є місця, де інформація зберігається або передається, використовуючи більше двох станів на елемент. У масиві флеш-пам'яті сотні або тисячі комірок пам'яті можуть обслуговуватися одним набором схеми зондування рівня. Використання чотирьох рівнів на клітинку, а не два під час зберігання певного обсягу інформації може втричі перевищити розмір схеми зондування рівня, але скоротить удвічі менше необхідної кількості комірок пам'яті. Під час спілкування через 100-базовий T або швидший Ethernet, вартість схеми, необхідної для виявлення декількох рівнів сигналу на кабелі, ймовірно, буде зменшена за рахунок витрат або на використання кабелю з більшою кількістю проводів, або на використання кабелів, які можуть працювати більше переходи сигналу в секунду без неприйнятного рівня спотворень.
У дослідницьких лабораторіях існують квантові комп'ютери, які використовують q-біт як основну одиницю інформації, яка може бути як 0, так і 1 одночасно.
http://en.wikipedia.org/wiki/Quantum_computer
Були також побудовані потрійні квантові комп'ютери відповідно до цієї посилання http://en.wikipedia.org/wiki/Ternary_computer
Отже, справді можливо побудувати альтернативні обчислювальні пристрої, які не покладаються на систему двійкових чисел. Наприклад, волоконно-оптичні системи використовують 0 для темного та двох різних ортоганальних поляризацій світла як 1 і -1.
Причина, чому я згадую ці речі, полягає в тому, що я хочу показати, що хоча двійкові числа є достатніми для обчислень, існують альтернативні системи числення, які можна використовувати для обчислень.
В основі цифрових комп'ютерів, що обробляють потужність, лежить транзистор, який працює як комутатор. Підвищуючи струм на «воротах» вимикача, він дозволяє струму текти між «колектором» і «випромінювачем» - вимикач увімкнено. Транзистор буде розроблений для роботи в одному з двох режимів - повністю включеному або повністю вимкненому («насиченому»), з чітким поділом того, що ці стани. Транзистор може швидко перемикатися між двома станами, залишатиметься в стані з дуже обмеженими помилками.
Ця схема є основою для логічних пристроїв, таких як AND, NAND, OR, XOR та інші функції. Функція NAND є основним з будівельних блоків. Ці логічні пристрої зібрані для забезпечення процесорів, які залишаються в передбачуваному стані, і багато транзисторів можуть бути упаковані у невеликому просторі, щоб забезпечити необхідну функціональність.
Транзистор може керувати декількома або різними станами, але, працюючи таким чином, вони не виробляють звичайних "цифрових" комп'ютерів - вони не прагнуть залишатися в передбачуваному стані і схильні до перешкод, насичення, коливань тощо - так вони мають обмежене застосування з точки зору обчислювальних можливостей. Оп-підсилювачі можна вважати аналоговими комп'ютерами.
Ми використовуємо лише двійковий (1,0), оскільки в даний час у нас немає технології для створення «комутаторів», які б надійно вміщували більше двох можливих станів. (Квантові комп'ютери наразі не продаються.) Бінарну систему обрали лише тому, що відрізнити наявність електричного струму від відсутності електричного струму досить просто, особливо при роботі з трильйонами таких з'єднань. І використовувати будь-яку іншу базу чисел у цій системі смішно, бо системі потрібно постійно конвертувати між ними. Це все, що там є.