Уважаемый читатель.
Ты, наверное в курсе, что современные компьютеры умеют хорошо производить простейшие математические операции "сложение" и "вычитание". И у тебя может возникнуть резонный вопрос: а как они это делают? Давайте я по-простому постараюсь тебе об этом рассказать
Что умеет компьютер?
Если по-честному, то его процессор изначально не умеет ни складывать ни вычитать. Этому его учит сам его конструктор. Компьютер изначально умеет лишь: хранить данные в своей памяти, переносить их из памяти в "математические регистры", логически сравнивать содержимое 2-х своих математических регистров (занося результаты этого сравнения в регистр масок), и выгружать данные из регистров в память. И все!
Как компьютер складывает.
Для простоты рассмотрим сложение 2-х однобайтных числа. Это числа от 0 до 255 - в десятеричной системе счисления, что соответствует от 00 до FF в 16-ричной и от 0000_0000 до 1111_1111 в двоичной системах счисления.
Для сложения таких чисел у компа должны быть 2 мат. регистра, каждый по 8 бит и один 8-битный "масочный" регистр М (точнее лишь один его бит М⁰)
Х⁷Х⁶Х⁵Х⁴_Х³Х²Х¹Х⁰ и Y⁷Y⁶Y⁵Y⁴_Y³Y²Y¹Y⁰
Тут говорю честно: я привёл схему для "советского/российского" компа. У американцев число в компе выглядит по другому, там оно хранится "задом наперёд":
X⁰X¹X²X³_X⁴X⁵X⁶X⁷ - и это для программиста гораздо удобнее. Об этом - после.
Я буду рассказывать как складывает комп производства СССР/РФ
1. В регистр Х заносим первое число, в Y - второе.
2. Начинаем по очереди справа-налево сравнивать содержимое регистров:
- если в Х⁰ и Y⁰ стоят 0 и 0, то в Х⁰ пишем 0
- если в X⁰ и Y⁰ стоят 0 и 1 или 1 и 0, то в Х⁰ пишем 1
- если в Х⁰ и Y⁰ стоят 1 и 1, то в Х⁰ пишем 0... И ставим "галочку" в масляном регистре М (точнее в М⁰) компьютера, занося туда "1"
3. Начинаем работать с разрядом ¹
- если 0 и 0 и в М тоже 0 то пишем 0
- если 0 и 0 и в М стоит "1", то пишем 1, маску М обнуляем
- если 0 и 1 или 1 и 0 и М=0, то пишем 1
- если 0 и 1 или 1 и 0 и М=1, то пишем 0, маску М сохраняем равной 1
- если 1 и 1 и М=0, то пишем 0, маску М=1
- если 1 и 1 и М=1, то пишем 1., маску М=1
4. Переходим к разрядам ², ³... И так до ⁷
На самом деле всё немного и проще и сложнее: в процессоре есть внутренний 8-битный регистр Z, по которому он запускает "1" по разрядам справа-налево - и так он сравнивает сперва Х и Z, формируя М⁴ и "складывает" его с М¹,⁰ а затем Y и Z, формируя M⁴, которое снова добавляет к М¹, ⁰. В итоге в 2-х его младших разрядах M¹ и M⁰ он получает либо 00 либо 01 либо 10 либо 11. Младший бит М⁰ он переписывает в соответствующий разряд Х, а старший М¹ он "сдвигает" в М⁰
Кажись можно понять схему того "процесса"... 🤕
Как компьютер вычитает?
Дело в том что "вычитает" он тоже "складывая". Отрицательное однобайтное число "х" имеет вид: 256-х. то есть:
-1 =255=FF -2=254=FE -3= 253=FD ... -255=1=01 (16-ричные)
И тогда понятно что "вычитать" помогает "зацикленность" однобайтных чимел:
у-х=у-(256-х)=y-256+х=у-00+х=y+x
Как складывают американцы?
Точно так же, но делают это слева-направо от Х⁰ до Х⁷
Вот собственно и всё, что тебе следует знать про простейшие математические операции, выполняемые компьютером. В следующий раз я расскажу как он умножает и делит.
@Маэстро
Комментарии
Тут как-нибудь подключили бы уже..
Не нужно идти на дзен, нужно чтобы дзен пришёл сюда!
Вот только этого говна-дзена здесь не хватало...
В широком смысле дзэн — это школа мистического созерцания или учение о просветлении, появившееся на основе буддийского мистицизма.
Какую-нибудь песочницу для приходящих можно придумать, а оттуда естественным отбором отсеивать лучших.
В смысле прям отдельную, отдельную.. А тут регистрацию прекратить, а то тут скоро будет не продохнуть.
ой, слава Богу, что ты не хозяин этого ресурса... а то б ты всех своих Авторов отсюда повыгонял
Автор сказочный дятел. Это не про компьютеры, а про их использование.
На самом деле, компьютер, это двоичная логика. Логическое и, или, не и их вариации. Логику собирают в цепочки реализующие необходимые опрерации. То же сложение многобитных чисел можно реализовать совершенно разной комбинацией логики. Торгуя количество транзисторов на скорость вычисления. От carry ripple adder до carry lookahead adder и carry save adder, как стадию умножения. Но это ерунда. Хотя и для такой ерунды используется ИИ, например в nvidia. Да, чтобы собрать банальный сумматор с оптимальным быстродействием и площадью. т.к. задача оптимизации двоичной логики является NP hard.
Последовательность байт в памяти, больше условности на уровне инструкций. Фактически не влияет ни на что. Конвееры современных процов чудовищно сложны, особенно, с точки зрения спекуляций памятью. Порядок байт, это тупо вопрос как из куска кеша при выборке биты будут упакованы для дальнейшиго движения в пайплайне.
Сколько битов нужно, чтобы собрать кубит на двоичной логике?
дятел - стучит. Причём далеко не азбукой Морзе.
Я же не стучу, а учу... Прежде всего думать, а потом уже писать комменты - подобные вашему.
Мой паблик - это "азбука" программирования. Без всяких заумностей и иностранных слов - коими вы столь щедро напичкали ваш коммент
Что это было ?
Кто-то решил открыть курсы для пятого класса про двоичную математику ?
А биология с темой про тычинки и пестики, и математика про таблицу умножения, в следующих выпусках будут ?
В чем смысл публикации подобного мусора ? Нарабатывание количества публикаций ? Так здесь это ничего не дает, не тот ресурс.
Автор, начните изучать принципы работы компьютера с традиционного, с машины Поста, тогда возможно начнете (но это не точно) что-то понимать. А двоичную алгебру и без вас нормально преподают в начале средних классов.
Будут обязательно.
Можно подумать - что вы сразу пошли в десятый класс средней школы и стали учить интегралы. А вот таблицу умножения - впитали с молоком матери ещё в роддоме
...
Если молодой человек не может понять текст моего паблика - то ему не надо пытаться освоить компьютер.
Пусть он лучше будет изучать вариации количества тычинок у цветка или размеры точек не божьей коровке ... или вообще неопределённые артикли в языке племени "мумба-юмба" - что в бразильских тропических лесах. Толка может там от него будет больше
Тема как-то не раскрыта, а скорее запутана ещё больше.
Хорошо было расписано в советских справочниках, например, по микросхеме 589ИК02, там где присутствовала её внутренняя схема.
Так как для экономии не делают отдельные сумматоры, а делают арифметико-логическое устройство, которое умеет делать как логические так и арифметические операции, что достигается управляемой инверсией входов-выходов и блокировкой межразрядных переносов. Если перенос блокирован - получаем логические операции, разрешён - арифметические.
ПС. Лучше начинать с К155ИП3 - она попроще устроена
Но если интересует именно сложение, то есть микросхема сумматора К155ИМ2
ПС2. Если кто осилит книжку ниже, тот будет реально понимать, как устроены компьютеры и сможет даже сам спроектировать простейший и при этом будет знать, что происходит в каждом проводнике своего изобретения.
"Популярные цифровые микросхемы. Справочник." автор - Валерий Леонидович Шило
ПС3. Современные компьютеры - это всего лишь горы из блоков, которые описаны в этом справочнике.
Но горы очень большие, и с наскоку понять как они устроены и работают очень сложно. Нужно знать историю развития вычислительных кристаллов. А вот как работают самые простые разобраться уже может большинство.
так чего вы теряетесь-то? Пишите сразу учебник по советским микросхемам для ВУЗов - только там студенты смогут понять ваши описания
Можете про деление двоичных чисел на пальцах объяснить?
Зачем, если даже сложение объяснено неверно? Никаких побитных операций не было и нет, иначе бы вычисления шли вечность.
Не говоря уже про советские и американские :)
Ну пусть сравнит как в советских СМ и ЕС были числа представлены, ну и в американских PDP и IBM соответственно :)
вы наверное имете в виду - что давно уже есть "аппаратные методы" основных математических операций.НО!!!
1. Они появились уже после "программных методов" проведения расчётов.
2. Они используют почти такую же "логику", но только она там в виде транзисторов и проводников
И наконец, основное: аппаратные микросхемы частенько очень недолговечны (особенно если есть ионизирующее излучение) А при таких "поломках надо либо выкидывать весь комп целиком (если нет возможности починить) - либо переходить на "старую добрую" работу без мат.ускорения компа
Про деление - в том же паблике где и умножение
"Если у тебя есть фонтан, заткни его: дай отдохнуть и фонтану"(с).
Но, боюсь, тут не обычный фонтан, а неосторожно пробитая скважина в интернетные дзен-слои, находящиеся под давлением, что привело к неконтролируемому самоизливу. Обычному человеку такое не победить, тут нужен специалист с опытом и специальным оборудованием... )))
А у тебя есть опыт "мозгоправства"? ... или всё опять пытаешься спихнуть "на чужое вмешательство"?
Я понял - это типа новой хронологии, но в сфере ИТ
Правильно.
Это - "первые шаги" человечества в деле обучения "железа" умению считать на подобии себя