85 lines
2.0 KiB
Plaintext
85 lines
2.0 KiB
Plaintext
REM variables:
|
|
REM A-O: binary digits with A least significant and N most significant
|
|
REM X: number whose binary expansion we want
|
|
REM Z: running value
|
|
|
|
INPUT X
|
|
LET Z = X
|
|
IF Z = 0 THEN GOTO 999
|
|
IF (Z/2)*2<>Z THEN LET A = 1
|
|
LET Z = (Z - A) / 2
|
|
IF (Z/2)*2<>Z THEN LET B = 1
|
|
LET Z = (Z - B) / 2
|
|
IF (Z/2)*2<>Z THEN LET C = 1
|
|
LET Z = (Z - C) / 2
|
|
IF (Z/2)*2<>Z THEN LET D = 1
|
|
LET Z = (Z - D) / 2
|
|
IF (Z/2)*2<>Z THEN LET E = 1
|
|
LET Z = (Z - E) / 2
|
|
IF (Z/2)*2<>Z THEN LET F = 1
|
|
LET Z = (Z - F) / 2
|
|
IF (Z/2)*2<>Z THEN LET G = 1
|
|
LET Z = (Z - G) / 2
|
|
IF (Z/2)*2<>Z THEN LET H = 1 REM THIS IS ALL VERY TEDIOUS
|
|
LET Z = (Z - H) / 2
|
|
IF (Z/2)*2<>Z THEN LET I = 1
|
|
LET Z = (Z - I) / 2
|
|
IF (Z/2)*2<>Z THEN LET J = 1
|
|
LET Z = (Z - J) / 2
|
|
IF (Z/2)*2<>Z THEN LET K = 1
|
|
LET Z = (Z - K) / 2
|
|
IF (Z/2)*2<>Z THEN LET L = 1
|
|
LET Z = (Z - L) / 2
|
|
IF (Z/2)*2<>Z THEN LET M = 1
|
|
LET Z = (Z - M) / 2
|
|
IF (Z/2)*2<>Z THEN LET N = 1
|
|
LET Z = (Z - N) / 2
|
|
LET O = Z
|
|
IF X >= 16384 THEN GOTO 114
|
|
IF X >= 8192 THEN GOTO 113
|
|
IF X >= 4096 THEN GOTO 112
|
|
IF X >= 2048 THEN GOTO 111
|
|
IF X >= 1024 THEN GOTO 110
|
|
IF X >= 512 THEN GOTO 109
|
|
IF X >= 256 THEN GOTO 108
|
|
IF X >= 128 THEN GOTO 107 REM THIS IS ALSO TEDIOUS
|
|
IF X >= 64 THEN GOTO 106
|
|
IF X >= 32 THEN GOTO 105
|
|
IF X >= 16 THEN GOTO 104
|
|
IF X >= 8 THEN GOTO 103
|
|
IF X >= 4 THEN GOTO 102
|
|
IF X >= 2 THEN GOTO 101
|
|
PRINT 1
|
|
END
|
|
101 PRINT B,A
|
|
END
|
|
102 PRINT C,B,A
|
|
END
|
|
103 PRINT D,C,B,A
|
|
END
|
|
104 PRINT E,D,C,B,A
|
|
END
|
|
105 PRINT F,E,D,C,B,A
|
|
END
|
|
106 PRINT G,F,E,D,C,B,A
|
|
END
|
|
107 PRINT H,G,F,E,D,C,B,A
|
|
END
|
|
108 PRINT I,H,G,D,E,D,C,B,A
|
|
END
|
|
109 PRINT J,I,H,G,F,E,D,C,B,A
|
|
END
|
|
110 PRINT K,J,I,H,G,F,E,D,C,B,A
|
|
END
|
|
111 PRINT L,K,J,I,H,G,D,E,D,C,B,A
|
|
END
|
|
112 PRINT M,L,K,J,I,H,G,F,E,D,C,B,A
|
|
END
|
|
113 PRINT N,M,L,K,J,I,H,G,F,E,D,C,B,A
|
|
END
|
|
114 PRINT O,N,M,L,K,J,I,H,G,F,E,D,C,B,A
|
|
END
|
|
|
|
999 PRINT 0 REM zero is the one time we DO want to print a leading zero
|
|
END
|