Представлення даних в ЕОМ: двійкове кодування інформації


У фізичному світі будь-яка інформація повинна бути якось представлена. Читаючи будь-яку статтю (книгу, відгук, замітку), опубліковану в інтернеті або надруковану на папері, ми сприймаємо текст і картинки. Зображення, яке ми бачимо, фокусується на сітківці наших очей, у вигляді електричних сигналів передається в мозок, який розпізнає знайомі символи і таким чином отримує інформацію. У якому вигляді ця інформація залишається в нашій пам'яті - у вигляді образів, логічних схем або чогось ще - може залежати від обставин її отримання, поставленої мети і конкретного способу осмислення. Комп'ютерна техніка більш обмежена і працює з потоком нулів і одиниць (так зване двійкове кодування інформації).

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

Вибір троичной системи числення автоматично вирішив би проблему кодування негативних чисел, яка в двійковій системі вирішується введенням так званого инвертирования з урахуванням першого біта як знакового. Про премудростях цієї операції для двійкової системи багато написано як в інтернеті, так і в літературі з мови Assember. У разі ж троичной логіки число могло б записуватися, наприклад, таким чином: «+ 00-0 + 0 + -». Тут «+» - економна запис значення «+1», «-» відповідно - «-1», ну а нуль говорить сам за себе. При перекладі на людську мову вийшло б наступне: + 3 ^ 8 + 0 + 0 - 3 ^ 5 + 0 + 3 ^ 3 + 0 + 3 ^ 1 - 3 ^ 0 = 6561 - 243 + 27 + 3 - 1 = 6347. Переваги троичной логіки проявилися б і при роботі з найрізноманітнішими даними: якщо на якесь питання передбачається однозначну відповідь, то двійковий біт може нести в собі один їх двох відповідей («так» або «ні»), тоді як трійчастий тріт - уже з трьох («так», «ні», «не визначене»). Досвідчені програмісти пам'ятають, як часто потрібно зберігати одну відповідь саме з трьох можливих, тому для невизначеного значення доводиться щось вигадувати, наприклад - вводити в систему додатковий параметр (двійковий): чи була вона повністю визначена до поточного моменту часу.




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

З математичної точки зору трійчастий комп'ютер повинен бути найбільш ефективним. Строгі викладки досить складні, але їх результат зводиться до наступного твердження: ефективність обчислювальної техніки тим вище, чим ближче її рідна система числення до числа е (приблизно рівному 2,72). Легко бачити, що трійка до числа 2,72 значно ближче, ніж двійка. Залишається сподіватися лише на те, що одного разу інженери, відповідальні за випуск електроніки, звернуть свою увагу на трійкову систему числення. Бути може, це і стане тим проривом, після якого буде створено штучний інтелект?

Поділися в соц мережах: