2016-03-11 3 views
0

Скажите, пожалуйста, как C++ добавляет два числа типа float и делает процесс настолько быстрым. Я пытаюсь создать библиотеку, которая может вычислять огромные числа, но мой процесс их добавления выходит в 1000 раз менее эффективен, чем два поплавка.Как работает вычисление float на C++?

+0

может я в меньше всего знаю, почему все голосуют, так как я не мог найти ответ нигде. –

+4

Современные процессоры выполняют операции с плавающей запятой непосредственно в аппаратном обеспечении. –

+0

Подробнее здесь: https://en.wikipedia.org/wiki/Floating-point_unit – user4581301

ответ

2

Ответ заключается в том, что у ЦПУ есть оборудование, которое знает, как хранить числа с плавающей запятой, и может непосредственно выполнять вычисления на них.

Например, вы можете хранить два числа с плавающей точкой в ​​регистрах XMM0 и XMM1 и добавить их вместе, получая процессор выполнить приведенную ниже инструкцию: -

addsd% XMM1,% XMM0

Это для 64-разрядный «x86», но каждый процессор имеет схожую.

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

+0

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

Смежные вопросы