Любое тело скажет мне, как 32-битный процессор выполняет операции с 64-битными двойными значениями?
В java double длина 64 бит. Затем, как 32-битный процессор выполняет арифметические операции (т.е. добавление или вычитание) на 64-битные двойные переменные.
64-битные типы и их операции эмулируются на 32-битных процессорах. После компиляции компилятор сопоставляет 64-битные значения с двумя 32-битными значениями, а операции с этими значениями - с последовательностью операций над их 32-битными представлениями. Это означает, что простая операция, которая добавляет два 64-битных значения, может быть выполнена изначально и атомарна на 64-битном процессоре, занимает несколько тактов при эмулировании на 32-битном процессоре.
Подробности и примеры: 64-битные типы и арифметика для 32-разрядных процессоров
Числовой сопроцессор, выполняющий операции с плавающей запятой, не заботится о том, является ли основной процессор 32-битным или 64-битным.
32-разрядный процессор просто имеет дело с 64-битным long
(или сопроцессором в случае double
) чисел в двух 32-битных фрагментах с регистрами, которые автоматически обнаруживают и уведомляют о переполнениях и т.д.