PROGRAM TOBIN IMPLICIT NONE INTEGER :: TEMP, INPUT, LCTL, C, D, I, P, D INTEGER, DIMENSION(1:30) :: BIN, PROOF INTEGER, DIMENSION(1:1) :: P C = 0 D = 0 P(1:1) = 0 READ(*,*) INPUT TEMP = INPUT LOOP: DO LCTL=1,30,1 C = C + 1 BIN(C:C) = REM(INPUT, 2) INPUT = INPUT / 2 IF (INPUT .EQ. 0) THEN EXIT END IF END DO LOOP WRITE(*,*) "The binary representation of the decimal number", TEMP, "is:", (BIN(I),I=1,C) ! Check if the calculation was ok :) LOOP2: DO LCTL=1,C,1 P = P + BIN(LCTL:LCTL) * 2**D D = D + 1 END DO LOOP2 WRITE(*,*) "Here is the proof: ", P CONTAINS INTEGER FUNCTION REM(X, Y) INTEGER, INTENT(IN) :: X, Y REM = X - Y * (X / Y) END FUNCTION END PROGRAM TOBIN