• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zamiana systeków liczbowych C++

0 głosów
548 wizyt
pytanie zadane 29 października 2016 w C i C++ przez Steefler Nowicjusz (180 p.)
Cześć,

słuchajcie mam problem. muszę napisać program który zamienia mi liczby na różne systemy: binarny, czwórkowy, ósemkowy i szesnastkowy. Nie mogę używać tablic, jedynie instrukcje sterujące.

O ile z dziesiętnego na dwójkowy to jest w zasadzie prosta sprawa tak z binarnego na szesnastkowy a potem z szesnastkowego na ósemkowy i z ósemkowego na dziesiętny robi się problem.

Gdzieś znalazłem informacje, że w for definiuje int i p, gdzie int to jest jakas liczba w danym systemie a p odpowiada za ilość przesunięć bitowych ale nie bardzo wiem jak mam to zrobić.

Będę bardzo wdzięczny za pomoc! :)

2 odpowiedzi

0 głosów
odpowiedź 2 listopada 2016 przez manjaro Pasjonat (23,040 p.)
Jak Ty chcesz studia informatyczne skończyć jak nie umiesz z googla korzystać?

http://www.algorytm.org/algorytmy-arytmetyczne/zamiana-z-i-na-system-dziesietny/systemy-1-c.html

http://www.algorytm.org/algorytmy-arytmetyczne/zamiana-z-i-na-system-dziesietny/systemy-2-c.html

Podziękuj Marianowi bo to jego algorytm ;)
–1 głos
odpowiedź 29 października 2016 przez Evelek Nałogowiec (28,850 p.)

Binarny na dziesiętny:

#include <iostream>
#include <cstdlib>
#include <string>

using namespace std;

int bin2dec (string binarna)
{
    int dziesietna = strtol(binarna.c_str(), NULL, 2);
    return dziesietna;
}

int main()
{
    string liczba;
    string zamiana;
    cout << "Podaj liczbe binarna:" << endl;
    cin >> liczba;
    cout << bin2dec(liczba) << endl;

    return 0;
}

Dziesiętna na binarną:

#include <cstdlib>
#include <iostream>
using namespace std;
 
void dec_to_bin(int liczba)
{
  int i=0,tab[31];
 
  while(liczba) //dopóki liczba będzie różna od zera
  {
    tab[i++]=liczba%2;
    liczba/=2;
  }
 
  for(int j=i-1;j>=0;j--)
    cout<<tab[j];
}
 
int main()
{
  int liczba;
 
  cout<<"Podaj liczbę: ";
  cin>>liczba;
 
  cout<<liczba<<" po zamianie na postać binarną: ";
  dec_to_bin(liczba);
  cout<<endl;
 
  system("pause");
  return 0;
}

Ósemkowy w dziesiętny:

#include <iostream>
#include <cstdlib>
#include <string>

using namespace std;

int oct2dec (string osemkowa)
{
    int dziesietna = strtol(osemkowa.c_str(), NULL, 8);

    return dziesietna;
}

int main()
{
    string liczba;

    cout << "Podaj liczbe osemkowa:" << endl;
    cin >> liczba;
    cout << oct2dec(liczba) << endl;

    system ("pause >nul");
    return 0;
}

Dziesiętny w ósemkowy:

#include <cstdlib>
#include <iostream>
using namespace std;

void dec_to_oct(int liczba)
{
    int i=0,tab[31];

    while(liczba)
    {
        tab[i++]=liczba%8;
        liczba/=8;
    }

    for(int j=i-1; j>=0; j--)
        cout<<tab[j];
}

int main()
{
    int liczba;

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

    cout<<liczba<<" po zamianie na postac binarna: ";
    dec_to_oct(liczba);
    cout<<endl;

    system("pause");
    return 0;
}

 

komentarz 30 października 2016 przez Steefler Nowicjusz (180 p.)
Tak jak pisałem, nie mogę używać tablic. Prowadzący powiedział ,że na kolokwium ich nie akceptuje :/
komentarz 2 listopada 2016 przez Evelek Nałogowiec (28,850 p.)

No dobrze. Może Ci się przyda w przyszłości, warto zachować i trzymać gdzieś w folderze. smiley

Podobne pytania

0 głosów
0 odpowiedzi 48 wizyt
0 głosów
2 odpowiedzi 86 wizyt
pytanie zadane 6 listopada 2016 w C i C++ przez Przemek Gaduła (3,580 p.)
0 głosów
1 odpowiedź 175 wizyt

42,402 zapytań

81,696 odpowiedzi

162,147 komentarzy

20,342 pasjonatów

Przeglądających: 108
Pasjonatów: 4 Gości: 104

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...