program main Integer*2 i2,I2BigToLittle Integer*4 i4,I4BigToLittle Real*4 r4,R4BigToLittle Real*8 r8,R8BigToLittle Character C4*4, C8*8, c16*16 * 設定各變數的初值 i2=10 i4=10 r4=10. r8=10. * 使用 Big <-> little 函數的互轉範例 write(*,*) i2,I2BigToLittle(i2),I2BigToLittle(I2BigToLittle(i2)) write(*,*) i4,I4BigToLittle(i4),I4BigToLittle(I4BigToLittle(i4)) write(*,*) r4,R4BigToLittle(r4),R4BigToLittle(R4BigToLittle(R4)) write(*,*) r8,R8BigToLittle(r8),R8BigToLittle(R8BigToLittle(r8)) * 使用 Big <-> little 逐步執行的互轉範例 write(c4,'(z4)') i2 write(*,*) c4 call BigToLittle(c4) read(c4,'(z)') i2 write(*,*) c4,i2 call BigToLittle(c4) read(c4,'(z)') i2 write(*,*) c4,i2 write(c8,'(z8)') i4 write(*,*) c8 call BigToLittle(c8) read(c8,'(z)') i4 write(*,*) c8,i4 call BigToLittle(c8) read(c8,'(z)') i4 write(*,*) c8,i4 write(c8,'(z8)') r4 call BigToLittle(c8) read(c8,'(z)') r4 write(*,*) c8,r4 call BigToLittle(c8) read(c8,'(z)') r4 write(*,*) c8,r4 write(c16,'(z16)') r8 call BigToLittle(c16) read(c16,'(z)') r8 write(*,*) c16,r8 call BigToLittle(c16) read(c16,'(z)') r8 write(*,*) c16,r8 end program Integer*2 Function I2BigToLittle(i2) Integer*2 i2,ti2 Character c4*4 write(c4,'(z4)') i2 call BigToLittle(c4) read(c4,'(z)') ti2 I2BigToLittle=ti2 end function Integer*4 Function I4BigToLittle(i4) Integer*4 i4,ti4 Character c8*8 write(c8,'(z8)') i4 call BigToLittle(c8) read(c8,'(z)') ti4 I4BigToLittle=ti4 end function Real*4 Function R4BigToLittle(r4) Real*4 r4,tr4 Character c8*8 write(c8,'(z8)') r4 call BigToLittle(c8) read(c8,'(z)') tr4 R4BigToLittle=tr4 end function Real*8 Function R8BigToLittle(r8) Real*8 r8,tr8 Character c16*16 write(c16,'(z16)') r8 call BigToLittle(c16) read(c16,'(z)') tr8 R8BigToLittle=tr8 end function Subroutine BigToLittle(Hex) Character*(*) Hex Integer*4 i,tLen tLen=len(Hex) do i=1,tLen if (Hex(i:i) .eq. ' ') then Hex(i:i)='0' end if end do do i=1,tLen/2,2 call SwapChar(Hex(i:i+1),Hex((tLen-i):(tLen-i+1))) end do end Subroutine Subroutine SwapChar(Char1,Char2) Character*(*) Char1, Char2 Character*1024 tChar tChar=Char1 Char1=Char2 Char2=tChar end Subroutine