Binary digits: Difference between revisions
Content added Content deleted
Not a robot (talk | contribs) (Add FOCAL) |
Not a robot (talk | contribs) (Add PL/M) |
||
Line 3,949: | Line 3,949: | ||
1111111111111111111111111111111 |
1111111111111111111111111111111 |
||
</pre> |
</pre> |
||
=={{header|PL/M}}== |
|||
<lang plm>100H: |
|||
/* CP/M BDOS CALL */ |
|||
BDOS: PROCEDURE (FN, ARG); |
|||
DECLARE FN BYTE, ARG ADDRESS; |
|||
GO TO 5; |
|||
END BDOS; |
|||
/* PRINT STRING */ |
|||
PRINT: PROCEDURE (STRING); |
|||
DECLARE STRING ADDRESS; |
|||
CALL BDOS(9, STRING); |
|||
END PRINT; |
|||
/* PRINT BINARY NUMBER */ |
|||
PRINT$BINARY: PROCEDURE (N); |
|||
DECLARE S (19) BYTE INITIAL ('................',13,10,'$'); |
|||
DECLARE (N, P) ADDRESS, C BASED P BYTE; |
|||
P = .S(16); |
|||
BIT: |
|||
P = P - 1; |
|||
C = (N AND 1) + '0'; |
|||
IF (N := SHR(N,1)) <> 0 THEN GO TO BIT; |
|||
CALL PRINT(P); |
|||
END PRINT$BINARY; |
|||
/* EXAMPLES FROM TASK */ |
|||
DECLARE TEST (3) ADDRESS INITIAL (5, 50, 9000); |
|||
DECLARE I BYTE; |
|||
DO I = 0 TO LAST(TEST); |
|||
CALL PRINT$BINARY(TEST(I)); |
|||
END; |
|||
CALL BDOS(0,0); |
|||
EOF</lang> |
|||
{{out}} |
|||
<pre>101 |
|||
110010 |
|||
10001100101000</pre> |
|||
=={{header|PowerBASIC}}== |
=={{header|PowerBASIC}}== |