All pastes #519579 Raw Edit

Untitled

public text v1 · immutable
#519579 ·published 2007-05-29 18:22 UTC
rendered paste body
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