konwersja liczb

Bogus
Użytkownik
Użytkownik
Posty: 20
Rejestracja: 12 gru 2007, o 16:13
Płeć: Mężczyzna
Lokalizacja: WAWA

konwersja liczb

Post autor: Bogus »

1. Napisz w języku C++ program, który dowolną liczbę naturalną n konwertuje na sytem binarny, oktalny, heksadecymalny.
soku11
Użytkownik
Użytkownik
Posty: 6607
Rejestracja: 16 sty 2007, o 19:42
Płeć: Mężczyzna
Podziękował: 119 razy
Pomógł: 1823 razy

konwersja liczb

Post autor: soku11 »

Kod: Zaznacz cały

#include <iostream>
using namespace std;

typedef unsigned int uint;

void Uint2Bin(uint Number);
void Uint2Oct(uint Number);
void Uint2Hex(uint Number);
char GetHexChar(uint Number);

int main()
{
  uint Number=0;

  cout<<"Podaj liczbe: ";
  cin>>Number;

  cout<<"\nLiczba "<<Number<<" w systemach (z prawej do lewej):\n- binarnym: ";
  Uint2Bin(Number);
  cout<<"\n- oktalnym: ";
  Uint2Oct(Number);
  cout<<"\n- heksadecymalnym: ";
  Uint2Hex(Number);

  return 0;
}

void Uint2Bin(uint Number)
{
  uint Remainder;

	if(Number<=1)
  {
    cout<<Number;
    return;
	}

	Remainder=Number%2;
	Uint2Bin(Number>>1);
	cout<<Remainder;
}

void Uint2Oct(uint Number)
{
  uint Remainder;

	if(Number<=1)
  {
    cout<<Number;
    return;
	}

	Remainder=Number%8;
	Uint2Oct(Number>>3);
	cout<<Remainder;
}

void Uint2Hex(uint Number)
{
  uint Remainder;

	if(Number<=1)
  {
    cout<<GetHexChar(Number);
    return;
	}

	Remainder=Number%16;
	Uint2Hex(Number>>4);
	cout<<GetHexChar(Remainder);
}


char GetHexChar(uint Number)
{
  if(Number<10)
    return Number+'0';

  switch(Number)
  {
    case 10:
      return 'A';
    case 11:
      return 'B';
    case 12:
      return 'C';
    case 13:
      return 'D';
    case 14:
      return 'E';
    case 15:
      return 'F';
    default:
      return '?';
  }
}

Ja to widze jakos tak :) Pozdrawiam.
Awatar użytkownika
kwak2k
Użytkownik
Użytkownik
Posty: 24
Rejestracja: 13 paź 2008, o 09:56
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 1 raz
Pomógł: 6 razy

konwersja liczb

Post autor: kwak2k »

Kod: Zaznacz cały

#include <iostream>
#include <bitset>

using namespace std;

int main()
{
  unsigned long n;
    cout<<"Podaj liczbe: ";
      cin>>n;

    bitset<32> b(n);
    cout<<"bin:"<<b<<endl;
    cout<<"hex:"<<hex<<n<<endl;
    cout<<"oct:"<<oct<<n<<endl;
    return 0;
}
ODPOWIEDZ