Count in octal: Difference between revisions

From Rosetta Code
Content added Content deleted
(+Java)
No edit summary
Line 2: Line 2:


The task is to produce a sequential count in octal, starting at zero, and using an increment of a one for each consecutive number. Each number should appear on a single line, and the program should count until terminated, or until the maximum value that can be held within the system registers is reached (for a 32 bit system using unsigned registers, this value is 37777777777 octal).
The task is to produce a sequential count in octal, starting at zero, and using an increment of a one for each consecutive number. Each number should appear on a single line, and the program should count until terminated, or until the maximum value that can be held within the system registers is reached (for a 32 bit system using unsigned registers, this value is 37777777777 octal).

=={{header|C++}}==
This prevents an infinite loop by counting until the counter overflows and produces a 0 again. This could also be done with a for or while loop, but you'd have to print 0 (or the last number) outside the loop.

<lang cpp>#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
unsigned i = 0;
do
{
cout << setbase(8) << (int)i << endl;
++i;
} while(i != 0);
}</lang>

=={{header|Java}}==
=={{header|Java}}==
<lang java>public class Count{
<lang java>public class Count{

Revision as of 01:37, 6 June 2011

Count in octal is a draft programming task. It is not yet considered ready to be promoted as a complete task, for reasons that should be found in its talk page.

The task is to produce a sequential count in octal, starting at zero, and using an increment of a one for each consecutive number. Each number should appear on a single line, and the program should count until terminated, or until the maximum value that can be held within the system registers is reached (for a 32 bit system using unsigned registers, this value is 37777777777 octal).

C++

This prevents an infinite loop by counting until the counter overflows and produces a 0 again. This could also be done with a for or while loop, but you'd have to print 0 (or the last number) outside the loop.

<lang cpp>#include <iostream>

  1. include <iomanip>

using namespace std;

int main() {

 unsigned i = 0;
 do
 {
   cout << setbase(8) << (int)i << endl;
   ++i;
 } while(i != 0);

}</lang>

Java

<lang java>public class Count{

   public static void main(String[] args){
       for(int i = 0;i <= Integer.MAX_VALUE;i++){
           System.out.println(Integer.toOctalString(i)); //optionally use "Integer.toString(i, 8)"
       }
   }

}</lang>

UNIX Shell

We use the bc calculator to increment our octal counter:

<lang sh>#!/bin/sh num=0 while true; do

 echo $num
 num=`echo "obase=8;ibase=8;$num+1"|bc`

done</lang>