Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Двоичный код. Существуют ли более сложные системы программирования?

В программировании используется две команды: логический ноль — есть сигнал и логическая единица — нет сигнала. Я так понимаю, все современное программное обеспечение строится на пакетах этих данных, что если в программу внести третью составляющую, своего рода принцип неопределённости, в графическом смысле это даст третью ось координат, из плоскости двоичного кода можно будет уйти в объём, что естественно усложнит программу, но значительно упростит её обучаемость.

ПрограммированиеЯзыки программирования
Тимофей
  · 3,2 K
старший разработчик в pseven.io  · 6 июл 2021

Тут нельзя ответить ни "да", ни "нет", потому что в самой предпосылке вопроса есть ошибка. Дело в том, что двоичный код — это не система программирования. Он действительно используется для хранения данных, но это не значит, что обработка и представление данных сводится к нулям и единицам. Посудите сами — прямо сейчас компьютер показывает вам буквы и картинки, а не двоичный код, а значит он очевидно умеет работать и с другими видами информации.

Чтобы разобраться, что тут происходит, нужно вспомнить математику, а именно системы счисления. Двоичный код — это просто числа, представленные в двоичной системе счисления. Люди традиционно используют десятичную, поэтому двоичный код кажется нам чем-то излишне упрощённым, но система счисления — это просто форма записи числа. Любое рациональное число можно записать в любой системе счисления. Все законы математики работают одинаково для чисел независимо от того, в какой форме мы эти числа записываем.

Так и с компьютерами — вся информация, которую они обрабатывают, в конечном итоге записана в памяти в виде чисел. Двоичная система была выбрана из инженерных соображений — электронные системы проще и надёжнее основывать на различии между "есть сигнал" и "нет сигнала", чем измерять уровень сигнала для хранения значения (такие системы тоже были, но они показали свою несостоятельность на практике).

Для хранения значения в памяти используется набор бит, называемый машинным словом. Современные процессоры имеют разрядность в 64 бита, то есть в один момент времени они обрабатывают значения от 0 до 18446744073709551615, а вовсе не 0 и 1. Затем такие "слова" складываются в "предложения", которые уже в свою очередь являются командами, выполняемыми процессором.

Скорее всего, ваш вопрос касается не двоичного кода, а двузначной логики. Формальная логика действительно двоична — любое логическое выражение может быть либо "истинно", либо "ложно". Зачатки математической логики заложил ещё Аристотель в III веке до нашей эры, а последний серьёзный вклад сделал профессор Джордж Буль в XIX веке. Многие языки программирования умеют работать с так называемым "булевым" значением, представляющим собой логическое значение "истина" или "ложь".

Существуют ли альтернативные варианты? Да, существуют — например, есть троичная логика Лукасевича, оперирующая тремя значениями: "истина", "ложь" и "неизвестно". Такая логика используется в языках систем управления базами данных, таких как SQL. Но программирование не сводится только к логике. Те же нейронные сети оперируют понятием веса связей, представленного в виде числа. В конечном итоге любой цифровой компьютер работает с числами, и не важно, в каком виде эти числа хранятся у него в памяти.

Что-то осталось непонятно? Спроси в нашей группе в Телеграме!Перейти на t.me/jstsmentor
3 эксперта согласны
"но это не значит, что обработка и представление данных сводится к нулям и единицам" - Нет - значит! А вы можете ин... Читать дальше
Разработчик текстовых квестов  · 1 июл 2021
Да не вопрос. Можно взять оптронику и считать при помощи сложения и расщепления цветовых гармоник. Можно взять пневмонику и считать на направлениях газовых потоков. Гидравлический интегратор можно смонстрячить или любой другой аналоговый вычислитель. Можно напаять модулей троичной логики и собрать себе "Сетунь 2021". Главное - определиться с основным вопросом - какую... Читать далее
2 эксперта согласны
Стоит плюсануть за одну только "Сетунь 2021".
Работаю поваром, интересуюсь голубями.  · 1 июл 2021  · yandex.ru/chat
Двоичный программный код базируется на вычислительной машине. Пока что минимальный период дискретизации (2∆T) приводит к наиболее эффективной работе, поэтому большинство современных электронных вычислительных машин основаны на транзисторах. Существуют так же квантовые компьютеры, в них используются кубиты. Это все значения от 0 до 1 одновременно, основан на принципах... Читать далее
Мне кажется, здесь перепутаны причина и следствие. Как раз потому, что большинство современных электронных вычислит... Читать дальше
Электромонтёр. Времени много, читать люблю. Понемногу обо всем.  · 18 февр 2022
ВСЕ системы программирования сложнее двоичного кода. Просто потому, что двоичный код уже давно для программирования не используется. Он используется для хранения данных. А, уж, как эти данные будут интерпретированы... Впрочем, я примерно понимаю, что Вы имели ввиду. Алгоритмические языки программирования основаны на мат.логике, которая утверждает, что любое утверждение... Читать далее
Не совсем верен ответ. Все языки программирования сводятся к двоичному коду. Хотя есть более сложный машинный... Читать дальше