nlothik (nlothik) wrote,
nlothik
nlothik

Category:

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

Обратно -- путевые заметки по мере допиливания виртуального процессора :)

Что значит умножить пятнадцать на четыре? Это значит взять четыре раза по пятнадцать: 15 + 15 + 15 + 15 = 60. Можно ли таким образом выразить умножение, через цикл сложения? Можно. Но это неэффективно. Почему?

Ну вот представим, что нужно умножить 25 на 10 000. Это значит нужно будет взять десять тысяч штук числа 25 и все их сложить. Допустим, операция сложения занимает у процессора два такта (реальное число зависит от модели процессора). Значит, на это понадобится 20 000 тактов. Ну, сейчас, при процессорах, работающих с частотой в три миллиарда и более тактов в секунду это копейки, а как было в 1965 году? Процессор PDP-8 работал на частоте где-то 0.5 мегагерца, и умножал бы это целых 4 миллисекунды. А если таких операций тысячи? Не, это ерунда получается.

Значительно быстрее будет, если мы, умножая 25 на 10 000, к числу 25 справа просто припишем четыре нуля: 250 000. Всё! Потратили один такт! Существенно лучше, чем 20 000 тактов, не так ли?

А как быть если надо умножить на 10 001? Очень просто -- умножаем на 10 000 (то-есть, опять сводим задачу к приписыванию четырёх нулей) и прибавляем 25. Три такта потратили (один на приписывание, другой на сложение).

А если множить на 9 999? Тогда надо поступить по-другому -- умножить на 10 000, а потом, соответственно, отнять 25.

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

Конечно, компьютеры не работают в десятичной системе. А работают они в двоичной. Поэтому когда справа к двоичному числу начать приписывать нули, число умножается не в десять, а в два раза. Так, число 100 (4) с дописанным нулём справа -- 1000 -- это в десятичной системе 8. И выбирает компьютер не из чисел-степеней десятки, а из чисел-степеней двойки.

окончание следует
Tags: компьютерное, учёба, хобби
Subscribe

  • Глазам своим не верю

    “In a press conference yesterday with reporters, White House climate adviser Gina McCarthy said the administration would seek to implement a…

  • Новенький ДеЛореан

    Пишут, что возможно (возможно) будет новый выпуск “ДеЛореанов”. Всем нам этот автомобиль, конечно, наиболее известен как машина…

  • Взлом замка компьютерными технологиями

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

  • 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.
  • 2 comments