! 例題 8-3 16進数変換をする外部関数 [外部関数 ] FUNCTION hex( n ) IMPLICIT NONE INTEGER, INTENT ( IN ) :: n INTEGER :: j, nn, nin CHARACTER ( LEN = 8 ) :: hex CHARACTER ( LEN = 1 ) :: h( 0 : 15 ) = (/ '0', '1', '2', & '3', '4', '5', '6', '7', '8', '9', & 'a', 'b', 'c', 'd', 'e', 'f' /) nin = n hex = ' ' DO j = 8, 1, -1 nn = nin / 16 hex( j : j ) = h( nin - 16 * nn ) ! 左辺は文字部分列の記号 IF ( nn == 0 ) EXIT nin = nn END DO END FUNCTION hex ! main PROGRAM ex8_3 IMPLICIT NONE INTEGER :: i CHARACTER ( LEN = 8 ) :: hex PRINT *, 'Input a positive integer or negative one to stop: ' DO READ *, i IF ( i < 0 ) EXIT PRINT '( 1X, A8 )', hex( i ) END DO END PROGRAM ex8_3