оператор эквивалентности

Код:

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

Я попробовал один пример кода, чтобы понять, как работает эквивалентность. Мой запрос: в каком формате хранятся внутренние данные и какой алгоритм, из которого я могу получить такое же теоретическое значение?

5
задан Theodros Zelleke 27 November 2012 в 10:30
поделиться