#include <stdio.h>
#define OK  0
#define ERR  1
#define DIM 5

/* 15. Escriban un programa que, dado un número entero 
en base decimal, calcule e imprima su equivalente 
en base octal. El número decimal estará en el 
rango 0..32767. Usar las operaciones de desplazamiento << y >>. */


int main()
{
  unsigned short numero,temp,maximo;
  int i,longitud,octal[DIM];

  maximo = (1 << (3*DIM))-1; 	/* 	Valor = 32767 	*/

  do{
    printf("Introduzca un numero entre 0 y 32767\t");
    scanf("%hu",&numero);
  } while (numero > maximo);

  printf("El numero %u en octal es:\t", numero );

  for( i = 0; i < DIM; ++i)
   octal[i] = 0;

  for( i = 0; i < DIM; ++i){
    temp = numero;
    numero = numero >> 3;
    octal[i] =  temp - (numero << 3);
    if(numero == 0)
      break;
  }
  
  longitud = i;
	
  for(i = longitud; i >=0; --i)
    printf("%d",octal[i]);
	
  printf("\n");
	
  return OK;

}


