Count in octal: Difference between revisions

Content added Content deleted
(Added Crystal)
(Added Algol W)
Line 177: Line 177:
8r00000000020
8r00000000020
8r00000000021
8r00000000021
</pre>

=={{header|ALGOL W}}==
Algol W has built-in hexadecimal and decimal output, this implements octal output.
<lang algolw>begin
string(12) r;
string(8) octDigits;
integer number;
octDigits := "01234567";
number := -1;
while number < MAXINTEGER do begin
integer v, cPos;
number := number + 1;
v := number;
% build a string of octal digits in r, representing number %
% Algol W uses 32 bit integers, so r should be big enough %
% the most significant digit is on the right %
cPos := 0;
while begin
r( cPos // 1 ) := octDigits( v rem 8 // 1 );
v := v div 8;
( v > 0 )
end do begin
cPos := cPos + 1
end for_cPos;
% show first digit on a newline %
write( r( cPos // 1 ) );
% continue the line with the remaining digits (if any) %
for c := cPos - 1 step -1 until 0 do writeon( r( c // 1 ) )
end while_r_lt_MAXINTEGER
end.</lang>
{{out}}
<pre>
0
1
2
3
4
5
6
7
10
11
12
...
</pre>
</pre>