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

Аватар пользователя Maestro47g

Уважаемый читатель.

Ты, наверное в курсе, что современные компьютеры умеют хорошо производить простейшие математические операции "сложение" и "вычитание". И у тебя может возникнуть резонный вопрос: а как они это делают? Давайте я по-простому постараюсь тебе об этом рассказать


Что умеет компьютер?


Если по-честному, то его процессор изначально не умеет ни складывать ни вычитать. Этому его учит сам его конструктор. Компьютер изначально умеет лишь: хранить данные в своей памяти, переносить их из памяти в "математические регистры", логически сравнивать содержимое 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


Как складывают американцы?


Точно так же, но делают это слева-направо от Х⁰ до Х⁷

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

@Маэстро

Авторство: 
Авторская работа / переводика
Комментарий автора: 

Прошу тех читателей, которым статья понравилась: 1- пройти ко мне на Дзен-канал, 2- подписаться на меня там, 3- "минутку" полистать статью. Тогда я там смогу подключить монетизацию и "копейку подзаработать". 

Как пройти на Д-канал? Жми:

https://m.dzen.ru/id/5d55536d46f4ff00ad95dc8c

Комментарии

Аватар пользователя Отсюда
Отсюда(5 лет 8 месяцев)

Тогда я там смогу подключить монетизацию и "копейку подзаработать". 

Тут как-нибудь подключили бы уже..

Не нужно идти на дзен, нужно чтобы дзен пришёл сюда! smile7.gif

Аватар пользователя 923241
923241(7 лет 1 месяц)

Вот только этого говна-дзена здесь не хватало...

Аватар пользователя Отсюда
Отсюда(5 лет 8 месяцев)

В широком смысле дзэн — это школа мистического созерцания или учение о просветлении, появившееся на основе буддийского мистицизма. smile1.gif 

Какую-нибудь песочницу для приходящих можно придумать, а оттуда естественным отбором отсеивать лучших.

В смысле прям отдельную, отдельную.. А тут регистрацию прекратить,  а то тут скоро будет не продохнуть. 

Аватар пользователя Maestro47g
Maestro47g(7 месяцев 2 дня)

ой, слава Богу, что ты не хозяин этого ресурса... а то б ты всех своих Авторов отсюда повыгонял

Аватар пользователя Assert
Assert(9 лет 3 недели)

Автор сказочный дятел. Это не про компьютеры, а про их использование. 

На самом деле, компьютер, это двоичная логика. Логическое и, или, не и их вариации. Логику собирают в цепочки реализующие необходимые опрерации. То же сложение многобитных чисел можно реализовать совершенно разной комбинацией логики. Торгуя количество транзисторов на скорость вычисления. От carry ripple adder до carry lookahead adder и carry save adder, как стадию умножения. Но это ерунда. Хотя и для такой ерунды используется ИИ, например в nvidia. Да, чтобы собрать банальный сумматор с оптимальным быстродействием и площадью. т.к. задача оптимизации двоичной логики является NP hard.

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

Аватар пользователя Отсюда
Отсюда(5 лет 8 месяцев)

Сколько битов нужно, чтобы собрать кубит на двоичной логике? 

Аватар пользователя Maestro47g
Maestro47g(7 месяцев 2 дня)

дятел - стучит. Причём далеко не азбукой Морзе.
Я же не стучу, а учу... Прежде всего думать, а потом уже писать комменты -  подобные вашему.
Мой паблик - это "азбука" программирования. Без всяких заумностей и иностранных слов - коими вы столь щедро напичкали ваш коммент

Аватар пользователя СибВатник
СибВатник(8 лет 2 месяца)

Что это было ?

Кто-то решил открыть курсы для пятого класса про двоичную математику ?

А биология с темой про тычинки и пестики, и математика про таблицу умножения, в следующих выпусках будут ?

В чем смысл публикации подобного мусора ? Нарабатывание количества публикаций ? Так здесь это ничего не дает, не тот ресурс.

Давайте я по-​простому постараюсь тебе об этом рассказать

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

Аватар пользователя Maestro47g
Maestro47g(7 месяцев 2 дня)

Будут обязательно.
Можно подумать - что вы сразу пошли в десятый класс средней школы и стали учить интегралы. А вот таблицу умножения - впитали с молоком матери ещё в роддоме
...
Если молодой человек не может понять текст моего паблика - то ему не надо пытаться освоить компьютер.
Пусть он лучше будет изучать вариации количества тычинок у цветка или размеры точек не божьей коровке ... или вообще неопределённые артикли в языке племени "мумба-юмба" - что в бразильских тропических лесах. Толка может там от него будет больше

Аватар пользователя просто пользователь

Тема как-то не раскрыта, а скорее запутана ещё больше.

Хорошо было расписано в советских справочниках, например, по микросхеме 589ИК02, там где присутствовала её внутренняя схема.

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

ПС. Лучше начинать с К155ИП3 - она попроще устроена

Но если интересует именно сложение, то есть микросхема сумматора К155ИМ2

ПС2. Если кто осилит книжку ниже, тот будет реально понимать, как устроены компьютеры и сможет даже сам спроектировать простейший и при этом будет знать, что происходит в каждом проводнике своего изобретения.

"Популярные цифровые микросхемы. Справочник." автор - Валерий Леонидович Шило

ПС3. Современные компьютеры - это всего лишь горы из блоков, которые описаны в этом справочнике.

Но горы очень большие, и с наскоку понять как они устроены и работают очень сложно. Нужно знать историю развития вычислительных кристаллов. А вот как работают самые простые разобраться уже может большинство.

Аватар пользователя Maestro47g
Maestro47g(7 месяцев 2 дня)

так чего вы теряетесь-то? Пишите сразу учебник по советским микросхемам для ВУЗов - только там студенты смогут понять ваши описания

Аватар пользователя Тохx
Тохx(6 лет 4 месяца)

Можете про деление двоичных чисел на пальцах объяснить?

Аватар пользователя Harsky
Harsky(12 лет 7 месяцев)

Зачем, если даже сложение объяснено неверно? Никаких побитных операций не было и нет, иначе бы вычисления шли вечность.

Аватар пользователя Vneroznikov
Vneroznikov(12 лет 11 месяцев)

Не говоря уже про советские и американские :)

Ну пусть сравнит как в советских СМ и ЕС были числа представлены, ну и в американских PDP и IBM соответственно :)

Аватар пользователя Maestro47g
Maestro47g(7 месяцев 2 дня)

вы наверное имете в виду - что давно уже есть "аппаратные методы" основных математических операций.НО!!!
1. Они появились уже после "программных методов" проведения расчётов.
2. Они используют почти такую же "логику", но только она там в виде транзисторов и проводников
И наконец, основное: аппаратные микросхемы частенько очень недолговечны (особенно если есть ионизирующее излучение) А при таких "поломках надо либо выкидывать весь комп целиком (если нет возможности починить) -  либо переходить на "старую добрую" работу без мат.ускорения компа

Аватар пользователя Maestro47g
Maestro47g(7 месяцев 2 дня)

Про деление - в том же паблике где и умножение

Аватар пользователя Levaifan
Levaifan(2 года 8 месяцев)

"Если у тебя есть фонтан, заткни его: дай отдохнуть и фонтану"(с).

Но, боюсь, тут не обычный фонтан, а неосторожно пробитая скважина в интернетные дзен-слои, находящиеся под давлением, что привело к неконтролируемому самоизливу. Обычному человеку такое не победить, тут нужен специалист с опытом и специальным оборудованием... )))

Аватар пользователя Maestro47g
Maestro47g(7 месяцев 2 дня)

А у тебя есть опыт "мозгоправства"? ... или всё опять пытаешься спихнуть "на чужое вмешательство"?

Аватар пользователя Дровосек
Дровосек(6 лет 2 месяца)

Я понял - это типа новой хронологии, но в сфере ИТ

Аватар пользователя Maestro47g
Maestro47g(7 месяцев 2 дня)

Правильно.
Это  - "первые шаги" человечества в деле обучения "железа" умению считать на подобии себя