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