Как двоичный код распознает компьютер
Перейти к содержимому

Как двоичный код распознает компьютер

  • автор:

Как компьютер понимает двоичный код?

Он его не «понимает». Двоичный код придумали люди исключительно для своего удобства. Допустим, компьютер попал в руки инопланетянина, который ничего о компьютерах не знает. Допустим, у него есть амперметр, вольтметр и часы. Он может в каждый момент посмотреть значения силы тока/потенциала в разных точках компьютера, построить графики, но никакого внятного вывода сделать не сможет, пока не предположит, что например, напряжение от 4.8 до 5.2 вольт — это логическая «единица», а от -5.2 до -4.8 вольт — логический «ноль». Из этого предположения уже можно делать выводы, что именно делает компьютер. Без этого предположения, не пытаясь накладывать ограничения на сигналы — нет.

Минимальный элемент двоичного компьютера — логический элемент ИЛИ-НЕ или И-НЕ. Используя их, можно выразить другие логические операции. Эти элементы реализуют, как правило, при помощи полупроводников. Соответственно, на самом базовом уровне, компьютеры (полупроводниковые) не понимают двоичный код, они понимают уровни напряжения/силы тока. Двоичный код — порождение человеческого сознания, некая условность; напряжение — физическая величина, присутствующая в «реальности» (хотя это отдельный вопрос, что такое реальность)

Если собрать гидравлический компьютер — он будет «понимать» давление. Логарифмическая линейка, как аналоговый компьютер, «понимает» сдвиг одной детали относительно другой.

Ответ написан более трёх лет назад
Нравится 2 1 комментарий

Я так и не понял, где происходит этот коннект. Связь между единицей, и тем как компьютер понимает что нужно выставить напряжение в ячейке памяти от 4.8 до 5.2 вольт

Как научили — так и понимает.

Компьютер представляет собой множество логических элементов, которые определяют его реакцию на считываемый в памяти двоичный код.
ru.wikipedia.org/wiki/%D0%9B%D0%BE%D0%B3%D0%B8%D1%.
ru.wikipedia.org/wiki/%D0%9C%D0%B0%D1%88%D0%B8%D0%.

Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

трансляторы

  • Трансляторы
  • +1 ещё

Как программировать на машинных кодах?

  • 2 подписчика
  • 09 янв.
  • 2537 просмотров

Значение двоичного кода – почему компьютеры работают с единицами и нулями

Компьютеры не понимают слов и цифр так, как это делают люди. Современное программное обеспечение позволяет конечному пользователю игнорировать это, но на самых низких уровнях ваш компьютер оперирует двоичным электрическим сигналом, который имеет только два состояния: есть ток или нет тока. Чтобы «понять» сложные данные, ваш компьютер должен закодировать их в двоичном формате.

Двоичная система основывается на двух цифрах – 1 и 0, соответствующим состояниям включения и выключения, которые ваш компьютер может понять. Вероятно, вы знакомы с десятичной системой. Она использует десять цифр – от 0 до 9, а затем переходит к следующему порядку, чтобы сформировать двузначные числа, причем цифра из каждого следующего порядка в десять раз больше, чем предыдущая. Двоичная система аналогична, причем каждая цифра в два раза больше, чем предыдущая.

Подсчет в двоичном формате

В двоичном выражении первая цифра равноценна 1 из десятичной системы. Вторая цифра равна 2, третья – 4, четвертая – 8, и так далее – удваивается каждый раз. Добавление всех этих значений даст вам число в десятичном формате.

1111 (в двоичном формате) = 8 + 4 + 2 + 1 = 15 (в десятичной системе)

Учет 0 даёт нам 16 возможных значений для четырех двоичных битов. Переместитесь на 8 бит, и вы получите 256 возможных значений. Это занимает намного больше места для представления, поскольку четыре цифры в десятичной форме дают нам 10000 возможных значений. Конечно, бинарный код занимает больше места, но компьютеры понимают двоичные файлы намного лучше, чем десятичную систему. И для некоторых вещей, таких как логическая обработка, двоичный код лучше десятичного.

Следует сказать, что существует ещё одна базовая система, которая используется в программировании: шестнадцатеричная. Хотя компьютеры не работают в шестнадцатеричном формате, программисты используют её для представления двоичных адресов в удобочитаемом формате при написании кода. Это связано с тем, что две цифры шестнадцатеричного числа могут представлять собой целый байт, то есть заменяют восемь цифр в двоичном формате. Шестнадцатеричная система использует цифры 0-9, а также буквы от A до F, чтобы получить дополнительные шесть цифр.

Почему компьютеры используют двоичные файлы

Короткий ответ: аппаратное обеспечение и законы физики. Каждый символ в вашем компьютере является электрическим сигналом, и в первые дни вычислений измерять электрические сигналы было намного сложнее. Было более разумно различать только «включенное» состояние, представленное отрицательным зарядом, и «выключенное» состояние, представленное положительным зарядом.

Для тех, кто не знает, почему «выключено» представлено положительным зарядом, это связано с тем, что электроны имеют отрицательный заряд, а больше электронов – больше тока с отрицательным зарядом.

Таким образом, ранние компьютеры размером с комнату использовали двоичные файлы для создания своих систем, и хотя они использовали более старое, более громоздкое оборудование, они работали на тех же фундаментальных принципах. Современные компьютеры используют, так называемый, транзистор для выполнения расчетов с двоичным кодом.

Вот схема типичного транзистора:

Схема типичного полупроводникового транзистора компьютера

По сути, он позволяет току течь от источника к стоку, если в воротах есть ток. Это формирует двоичный ключ. Производители могут создавать эти транзисторы невероятно малыми – вплоть до 5 нанометров или размером с две нити ДНК. Это то, как работают современные процессоры, и даже они могут страдать от проблем с различением включенного и выключенного состояния (хотя это связано с их нереальным молекулярным размером, подверженным странностям квантовой механики).

Почему только двоичная система

Поэтому вы можете подумать: «Почему только 0 и 1? Почему бы не добавить ещё одну цифру?». Хотя отчасти это связано с традициями создания компьютеров, вместе с тем, добавление ещё одной цифры означало бы необходимость выделять ещё одно состояние тока, а не только «выключен» или «включен».

Проблема здесь в том, что если вы хотите использовать несколько уровней напряжения, вам нужен способ легко выполнять вычисления с ними, а современное аппаратное обеспечение, способное на это, не жизнеспособно как замена двоичных вычислений. Например, существует, так называемый, тройной компьютер, разработанный в 1950-х годах, но разработка на том и прекратилась. Тернарная логика более эффективна, чем двоичная, но пока ещё нет эффективной замены бинарного транзистора или, по крайней мере, нет транзистора столь же крошечных масштабов, что и двоичные.

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

Таким образом, бинарная математика проще для компьютера, чем что-либо ещё. Двоичная логика легко преобразуется в двоичные системы, причем True и False соответствуют состояниям Вкл и Выкл .

Бинарная таблица логических операций

Бинарная таблица истинности, работающая на двоичной логике, будет иметь четыре возможных выхода для каждой фундаментальной операции. Но, поскольку тройные ворота используют три входа, тройная таблица истинности имела бы 9 или более. В то время как бинарная система имеет 16 возможных операторов (2^2^2), троичная система имела бы 19683 (3^3^3). Масштабирование становится проблемой, поскольку, хотя троичность более эффективна, она также экспоненциально более сложна.

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

Как компьютер понимает команды?

Есть двоичный код-условное обозначение нулей и единиц для пк(есть напряжение и нет напряжения).
А как пк понимает,что делать при команде 010011,а что при 0010011?
ну,например,есть ребенок лет 3-х,ему дают предложение-сходи,купи телефон-команда
наша азбука-двоичный код,а ребенок-пк,
Но нужно же еще объяснить этому 3-х-летнему ребенку,что значит купить,ходить и телефон
Примерно и такой вопрос у меня про компьютеры.

  • Вопрос задан более трёх лет назад
  • 7223 просмотра

7 комментариев

Простой 7 комментариев

rockon404

Потратьте время на чтение любой хорошей книги по архитектуре компьютера.
1Tima1 @1Tima1 Автор вопроса
Антон Спирин, нужно выбрать-«для чайников»,или там все «для чайников»?

rockon404

1Tima1, начните с Таненбаума
1Tima1 @1Tima1 Автор вопроса
1975 года нормально,или самое то?
1Tima1 @1Tima1 Автор вопроса
Антон Спирин, какое издание лучше?

rockon404

1Tima1, Архитектура Компьютера 6-ое издание. В оригинале вышла в 2012.
1Tima1 @1Tima1 Автор вопроса

5d37198414b8c138901506.jpeg

Антон Спирин, поехали)

Решения вопроса 1

Zoominger

System Integrator

Слишком размытый вопрос.
«Понимает» не ПК, а процессор, который принимает процессорные команды и выполняет их, гоняя байты и биты, посылая определённые сигналы по шинам другим устройствам и из всего этого, через уровни абстракции от нижних к верхним, происходит просмотр котиков на Ютубе.
Подробное объяснение займёт страниц этак двадцать в общих чертах.

Ответ написан более трёх лет назад
Нравится 3 21 комментарий
1Tima1 @1Tima1 Автор вопроса

но нужно же сначала забить «эти процессорные команды» в сам процессор!
ведь если вы напишите что-то другое,то он не поймет

Zoominger

но нужно же сначала забить «эти процессорные команды» в сам процессор!

ведь если вы напишите что-то другое,то он не поймет

«Мы» ничего не пишем, пишут компиляторы, которые точно знают, что делают, как и инженеры-проектировщики ЦП.

1Tima1 @1Tima1 Автор вопроса

Рональд Макдональд, так я не говорю не про ассемблер,я имею в виду-как процессор понимает команды такие-100101010010101001010101010110

Zoominger

1Tima1, всё несколько сложнее, чем просто 0101001010101.
1Tima1 @1Tima1 Автор вопроса

Рональд Макдональд, ну может есть какое-то объяснение??
это же должны были понять еще первые создатели компьютеров?!

Zoominger

1Tima1, если заниматься этим вот прям серьёзно, то советую книги по архитектуре старых процессоров типа Intel 8086, по нему есть даже статьи, которые дадут составить хоть какое-то представление.

Просто чем дальше, тем больше навешивали на ЦП разные примочки, из-за чего даже простое объяснение размажется реально на сотни страниц.

1Tima1 @1Tima1 Автор вопроса
Иван,
вы про и и или?
ну вот есть,нет,есть,есть,нет и что процессор с этим сделает?

Griboks

1Tima1, на всех ход подается 111001, процесс включается определённый каскад, корой отвечает за этот код (очень грубо). По сути, это схемотехника, только в ней в миллион раз больше конденсаторов, резисторов, катушек и транзисторов.

1Tima1 @1Tima1 Автор вопроса
Griboks, можно чуть подробнее после того как я написал код-10100110?

Griboks

1Tima1, он превратился в электрический ток и отправился на схему
1Tima1 @1Tima1 Автор вопроса

Griboks, ну то есть 1-есть напряжение-получится электрон,0-нет напряжение-будет пустота?
и что с этим током будет в схеме?

Griboks

1Tima1, нет, 1110 — это 5 вольт, а 10001- это 4 вольта и т. п. Дальше в схему подается как на уроках физики в школе, только чуть сложнее.

1Tima1 @1Tima1 Автор вопроса
а как там постоянно чередуется 4,5,5,5,4,5,4,4 вольта
1Tima1 @1Tima1 Автор вопроса
Griboks, последовательность разных напряжений это вообще как?

Griboks

1Tima1, ладно, я пытался помочь, но лучше вам просить почитать пару книг.

Zoominger

Griboks, вас тоже надолго не хватило? 🙂
1Tima1 @1Tima1 Автор вопроса

Рональд Макдональд, вот только не надо!
почему то,что вы уже изучаете несколько лет,я должен понять сразу!

Zoominger

1Tima1, почему то, что мы изучаем несколько лет, вы ждёте, что мы объясним в двух предложениях?
1Tima1 @1Tima1 Автор вопроса

Рональд Макдональд, а почему вы смеетесь над тем,что я хочу понять и узнать больше?
вас тоже надолго не хватило? 🙂

Zoominger

1Tima1, да никто не смеётся, просто у вас на один наш ответ сразу десять вопросов 🙂
1Tima1 @1Tima1 Автор вопроса
Рональд Макдональд, ну не сразу понял, хочу подробнее узнать
плохо что ли?!
Ответы на вопрос 4

Adamos

Есть прекрасная книжка: «Код. Тайный язык информатики».
Позволяет выкинуть из головы детские фантазии и начать изучение с реальности.

Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать

Давайте попробуем коротко:
процессор компьютера состоит из более, чем миллиона транзисторов. Они то открываются, пропуская ток (сигнал), то закрываются.
0 и 1 это значение сигнала (если так можно выразиться). 0 — сигнала нет, 1- сигнал есть.
Последовательность 1 и 0 определяет открытие и закрытие различных транзисторов.

То, как будут выполняться команды на процессоре, определяют создатели процессоров. Но всё тянется от булевой логики и базовые операции определены давно.

Например вы вводите умножение двух чисел: 2 * 2. Пропустим компиляцию или интерпретацию в машинный код. Когда двойка становится 10 (в двоичной системе), она проходит через транзистор и в память пишутся данные. Такое происходит со всей операцией (Умножение тоже имеет своё обозначение для процессора. Это операция «И». Т.е. 10AND10 дадут в результате сигнал вида 100, что будет интерпретироваться как 4).
В итоге в ячейке памяти записывается результат 4.

Важно понять, что все операции происходят на транзисторах с сигналами (0 и 1). Транзисторы образуют сложные комбинации для выполнения длинных и более сложных команд, чем умножение или сложение.
А то какие операции выполняют эти комбинации транзисторов, уже лучше читать в книжках.

Вот есть неплохое (достаточно простое в понимании) видео

Почему в компьютере вся информация переводится в двоичный код? Почему компьютер «понимает» только его?

Миллионы людей регулярно садятся за свой компьютер и начинают с ним взаимодействовать. И мало кто знает, в каких понятиях «думает» его электронный друг и что надо ему сообщить, чтобы он закрыл наши окошки в «виндовс» , позволил сыграть в любимую игрушку-бродилку, показал сообщения нашей электронной почты.. . В данной статье я хочу в кратце описать, что на самом деле обрабатывает наш персональный компьютер. В основе всего машинный бинарный код!

Что же такое бинарный код?
На сегодняшний день компьютер способен понимать лишь специфичный для него язык. В основе такого языка лежит бинарный машинный код. Данный код представляет из себя последовательность битовых чисел 0 и 1 (отсюда название бинарный – значит двоичный – состоит из двух цифр) . Пример кода, 0010111010001011. Любая команда, обрабатываемая процессором компьютера, кодируется двоичным кодовым числом. Такая команда является примитивной с точки зрения пользователя, так как в отдельности команда не может решить хоть какую-нибудь простую его задачу. Например, доступ к ячейке данных, инициация прерывания, обновление регистра процессора… Пользовательские же команды такие, как движение мышки по столу, сохранение документа на диске, просмотр флэш-баннера и прочие разбиваются на миллионы мелких примитивных операций для выполнения процессором.
Есть также известное понятие – разрядность машины. Многие не в курсе что это такое. А это как раз вытекает из бинарного кода. Машина обрабатывает банарный код определнеными порциями, которые именуются «словом» . Как раз длина этого слова соответствует разрядности самой машины.

Почему именно бинарный код использует компьютер?
Двоичный (бинарный) код используется во всех цифровых устройствах за счет простоты и надежности. Двоичная арифметика довольно простая и ее нетрудно реализовать на аппаратном уровне. Компоненты электронных схем надежнее, если они основаны на понятиях «есть ток» и «нет тока» . В цифровой технике одному двоичному коду сопоставлен один логический компонент (элемент) схемы, способный находиться в двух состояниях: пропускать ток по схеме или нет. Примером наиболее простого подобного элемента является двоичный триггер — устройство-переключатель с двумя стабильными рабочими состояниями.

Как же преобразовать пользовательские команды в бинарные?
Машинный бинарный код совершенно непонятен человеку. Такое утверждение заставляет задуматься о том, какой популярностью еще в 60-е годы пользовались компьютерные гуру. На сегодняшний день машинный бинарный код просто-напросто не актуален программисту благодаря тому, что человечество изобрело массу новых языков программирования. Именно языки программирования осуществляют взаимодействие между человеком и компьютером. Суть языка программирования состоит в том, что человек разрабатывает программу для машины на языке, оперирующем естественными широкими функциями, как, например, записать текст в файл, вычислить синус числа и прочие, а затем с помощью специальных программ — компиляторов — происходит преобразование высокоуровневого человеческого языка в в различные виды машинных бинарных команд.

Источник: http://mainsource.ru/info/articles/a-30/
Наталья МальковаМудрец (16494) 12 лет назад
все гениальное. просто!
Остальные ответы

Потому что он написан на нём 😉

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *