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

Zamiana systeków liczbowych C++

Object Storage Arubacloud
0 głosów
42,163 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 Nałogowiec (37,390 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,960 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,960 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 573 wizyt
pytanie zadane 28 października 2016 w Rozwój zawodowy, nauka, praca przez Roksana Nowicjusz (120 p.)
0 głosów
0 odpowiedzi 561 wizyt
0 głosów
2 odpowiedzi 823 wizyt

92,555 zapytań

141,402 odpowiedzi

319,540 komentarzy

61,938 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...