You are on page 1of 5

#include <iostream>

#include <string>

using namespace std;

string dz_x(int liczba, int podst);


void przemiana_10_x();
void przemiana_10_x() {
int liczba;
cout << "Podaj liczbe: ";
cin >> liczba;
int podst;
cout << "Podaj podstawe (2-16): ";
cin >> podst;
if (podst<2 || podst > 16){
cout << "podst musi byc liczba miedzy 2, a 16"<<endl;
return;
}
cout << "Wynik: " << dz_x(liczba, podst) << endl;
}

string dz_x(int liczba, int podst) {


int wynik, reszta;
string liczbas = "";
do {
reszta = liczba % podst;
if (reszta<10)
liczbas = char(reszta + '0') + liczbas;
else
liczbas = char(reszta - 10 + 'A') + liczbas;
wynik = liczba / podst;
liczba = wynik;
} while (wynik != 0);
return liczbas;
}

void przemiana_10_16();
void przemiana_10_16()
{
int liczba;
cout << "Podaj liczbe: ";
cin >> liczba;
int podst = 16;
cout << "Wynik: " << dz_x(liczba, podst) << endl;
}

long pot(int podst,int wykl)


{

long wynik=1;
for(int i=1;i < wykl;i++)
wynik=wynik*podst;
return wynik;
}

long x_10(string liczbas, int podst)


{
long wynik = 0;
for (int i = liczbas.length() - 1; i >= 0; i--)
{
wynik*= podst;
wynik += (liczbas[i] - '0') * pot(podst, liczbas.length() - 1 - i);

return wynik;
}
void przemiana_16_10();
void przemiana_16_10()
{
string liczbas="";
int podst = 16;
cin>>liczbas;

cout<<x_10(liczbas, podst)<<endl;
}
void przemiana_2_4();
void przemiana_2_4() {
string liczbas;
cout << "Podaj liczbe w systemie binarnym: ";
cin >> liczbas;

for (char digit : liczbas) {


if (digit != '0' && digit != '1') {
cout << "Podana liczba nie jest liczb¹ binarn¹." << endl;
return;
}
}

while (liczbas.length() % 2 != 0) {
liczbas = '0' + liczbas;
}

string wynik = "";

for (int i = 0; i < liczbas.length(); i += 2) {


int digit1 = liczbas[i] - '0';
int digit2 = liczbas[i + 1] - '0';
int czworka = digit1 * 2 + digit2;
wynik += to_string(czworka);
}

cout << "Wynik: " << wynik << endl;


}

void przemiana_2_8();
void przemiana_2_8() {
string liczbas;
cout << "Podaj liczbe w systemie binarnym: ";
cin >> liczbas;

for (char digit : liczbas) {


if (digit != '0' && digit != '1') {
cout << "Podana liczba nie jest liczb¹ binarn¹." << endl;
return;
}
}

while (liczbas.length() % 3 != 0) {
liczbas = '0' + liczbas;
}

string wynik = "";

for (int i = 0; i < liczbas.length(); i += 3) {


int digit1 = liczbas[i] - '0';
int digit2 = liczbas[i + 1] - '0';
int digit3 = liczbas[i + 2] - '0';
int osemka = digit1 * 4 +digit2 * 2 + digit3;
wynik += to_string(osemka);
}

cout << "Wynik: " << wynik << endl;


}

void przemiana_2_16();
void przemiana_2_16() {
string liczbas;
cout << "Podaj liczbe w systemie binarnym: ";
cin >> liczbas;

for (char digit : liczbas) {


if (digit != '0' && digit != '1') {
cout << "Podana liczba nie jest liczb¹ binarn¹." << endl;
return;
}
}

while (liczbas.length() % 4 != 0) {
liczbas = '0' + liczbas;
}

string wynik = "";

for (int i = 0; i < liczbas.length(); i += 4) {


int digit1 = liczbas[i] - '0';
int digit2 = liczbas[i + 1] - '0';
int digit3 = liczbas[i + 2] - '0';
int digit4 = liczbas[i + 3] - '0';
int szesnastka = digit1 * 8 + digit2 * 4 +digit3 * 2 + digit4;
if (szesnastka < 10)
wynik += to_string(szesnastka);
else{
wynik += char(szesnastka -10 + 'A');
}

cout << "Wynik: " << wynik << endl;


}

void przemiana_16_2();
void przemiana_16_2() {
string liczbas;
cout << "Podaj liczbe w systemie szesnastkowym: ";
cin >> liczbas;

for (char digit : liczbas) {


if (!isxdigit(digit)) {
cout << "Podana liczba nie jest poprawną liczbą szesnastkową." << endl;
return;
}
}

string wynik = "";

for (char digit : liczbas) {


int dec = 0;
if (isdigit(digit)) {
dec = digit - '0';
} else {
dec = toupper(digit) - 'A' + 10;
}

// Konwersja liczby dziesiętnej na binarną


string binary = "";
while (dec > 0) {
binary = to_string(dec % 2) + binary;
dec /= 2;
}

// Dopisanie odpowiedniej liczby zer do uzyskania 4 bitów


while (binary.length() < 4) {
binary = "0" + binary;
}

wynik += binary;
}

cout << "Wynik: " << wynik << endl;

void przemiana_8_2();
void przemiana_8_2(){

string liczbas;
cout << "Podaj liczbe w systemie osemkowym: ";
cin >> liczbas;

You might also like