nlothik (nlothik) wrote,
nlothik
nlothik

Category:

Как процессор умножает целые числа, окончание

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

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

Что делать с левой частью? В принципе, в ней должны быть одни нули, и её можно смело отрезать. Если там не нули, значит, получилось число, которое больше максимального числа, которые мы можем представить в нашем процессоре, с заданной битностью. Так, если у нас 16 бит на число, максимальное число, которое мы можем представить -- 65 535 (если нас интересует работа только с положительными числами). Если же у нас в левой части получились единички, значит, наш результат больше, чем числа, с которыми мы можем работать. Обычно при таких результатах внутри процессора ставится какой-либо статусный флаг, сигнализирующим о переполнении. Задача программиста -- спросить у процессора, "а нормально ли умножилось?" Если не спросить -- то не удивляйтесь, если 35 000 * 2 = 4 464.
Tags: компьютерное, учёба, хобби
Subscribe

  • На выходных

    Попробовал бифштекс системы “Томагавк”: Вкусный, но в одно рыло сожрать полкило отборного мяса — это много. Я поэтому не…

  • Про лечение ковидлы

    Был у доктора, простой ежегодный визит. Доктор меня спросил, болел ли я ещё ковидлой. –Пока везло, не болел плюс привит. –Что…

  • Про марксизьму

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

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 7 comments