Binary coded decimal: Difference between revisions
→{{header|PL/M}}: Show the same 12-digit arithmetic as the Algol 68 and Algol W samples
(→{{header|ALGOL W}}: Use unsigned BCD and added addition/subtraction of larger numbers) |
(→{{header|PL/M}}: Show the same 12-digit arithmetic as the Algol 68 and Algol W samples) |
||
Line 841:
A = 01H;
DO I = 1 TO 10; /* REPEATEDLY ADD
CALL PR$BCD( F );
CALL PR$BCD( E );
Line 848:
CALL PR$BCD( B );
CALL PR$BCD( A );
CALL PR$STRING( .' +
A = DEC( A +
B = DEC( B PLUS
C = DEC( C PLUS
D = DEC( D PLUS
E = DEC( E PLUS
F = DEC( F PLUS
CALL PR$BCD( F ); /* INCLUDING THE CARRY FROM THE PREVIOUS */
CALL PR$BCD( E ); /* OPERATION, +/- IGNORE THE CARRY. */
Line 864:
END;
CALL PR$BCD( F );
CALL PR$BCD( E );
Line 873 ⟶ 871:
CALL PR$BCD( B );
CALL PR$BCD( A );
CALL PR$STRING( .' -
A = DEC( A -
B = DEC( B MINUS
C = DEC( C MINUS
D = DEC( D MINUS
E = DEC( E MINUS
F = DEC( F MINUS
CALL PR$BCD( F );
CALL PR$BCD( E );
Line 889 ⟶ 887:
END;
EOF
</lang>
{{out}}
<pre>
012345678901 +
023456790012 + 011111111111 = 034567901123
034567901123 + 011111111111 = 045679012234
045679012234 + 011111111111 = 056790123345
056790123345 + 011111111111 = 067901234456
067901234456 + 011111111111 = 079012345567
079012345567 + 011111111111 = 090123456678
090123456678 + 011111111111 = 101234567789
101234567789 + 011111111111 = 112345678900
112345678900 + 011111111111 = 123456790011
123456790011 - 011111111111 = 112345678900
112345678900 - 011111111111 = 101234567789
101234567789 - 011111111111 = 090123456678
090123456678 - 011111111111 = 079012345567
079012345567 - 011111111111 = 067901234456
067901234456 - 011111111111 = 056790123345
056790123345 - 011111111111 = 045679012234
045679012234 - 011111111111 = 034567901123
034567901123 - 011111111111 = 023456790012
023456790012 - 011111111111 = 012345678901
</pre>
|