1
我正在學習Fortran。我遇到了這個錯誤,但我不知道這個原因。分配最大4字節和8字節整數時出錯
INTEGER*1 :: i1
INTEGER*2 :: i2
INTEGER*4 :: i3
INTEGER*8 :: i4
i1 = 2**7 - 1
i2 = 2**15 - 1
i3 = 2**31 - 1 ! giving error
i4 = 2**63 - 1 ! giving error
i4 = 2**31 - 1 ! this also giving error
即使可變大小支持指定的值,我得到算術流錯誤。
我正在使用gfortran 4.8編譯器。發生什麼事?
2 ** 31是一個算術溢出。你是否嘗試過:i3 = huge(i3) – Rob
不要學習指定變量類型的非標準方式,例如'INTEGER * 4'。學習'kind =','selected_int_kind'(以及它的親屬)以及由標準內在模塊'iso_fortran_env'提供的參數,如'real64'。 –