Код:
program CheckEquivalence
integer*8 intarray(4)
real*8 realarray(4)
equivalence(realarray,intarray)
realarray(3) = 3
intarray(4) = 4
realarray(1) = 1.0
realarray(2) = 2.0
do i = 1,4
write(,) 'All real ', realarray(i)
enddo
do i = 1,4
write(,) 'All int ', intarray(i)
enddo
do i = 1,3
write(,) 'Some real ', realarray(i)
enddo
write(,) 'Last int ', intarray(4)
end
вывод:
All real 1.
All real 2.
All real 3.
All real 1.97626258E-323
All int 4607182418800017408
All int 4611686018427387904
All int 4613937818241073152
All int 4
Some real 1.
Some real 2.
Some real 3.
Last int 4
Я попробовал один пример кода, чтобы понять, как работает эквивалентность. Мой запрос: в каком формате хранятся внутренние данные и какой алгоритм, из которого я могу получить такое же теоретическое значение?