nlothik (nlothik) wrote,
nlothik
nlothik

Category:

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

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

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

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

  • Интернет Илона Маска

    Чувак проверил интернет системы “Старлинк”. Вообще — вполне норм. Пинг 36 миллисекунд, канал от 50 до 150 мегабит. Если других…

  • Про приватность VPN

    Забавненько. Крякеры украли инфу у трёх VPN-провайдеров, и в ней оказалось много всякого, что провайдер обещал не записывать в логи Например,…

  • Винда совсем охренела

    На свежепоставленной Винде решил добавить русскую клавиатуру. В списке доступных раскладок клавиатур присутствуют японская, корейская, и даже…

  • 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