#include<iostream>
#include<string>
#include <string.h>
using namespace std;
int main()
{
char liczba[100]; // tablica na liczbe (może być np. system szesnastkowy gdzie wystepuja litery oprocz cyfr)
int p = 1, wynik = 0, system, x;
cout << "Podaj system w jakim zapisana jest liczba <2,16>: ";
cin >> system;
int b ;
cout <<"Adres &b to " << &b << endl ;
cout << "Przepisz adres &b bez 0x a zobaczysz jaka to liczba" << endl;
cout << "Podaj liczbe: ";
cin >> liczba;
cout << "Liczba " << liczba << " w systemie dziesietnym wynosi ";
for (int i = strlen(liczba)-1; i >= 0; i--) // zaczynamy od konca tablicy i poruszamy sie do przodu - do indeksu 0
{
if (liczba[i] >= '0' && liczba[i] <= '9') // jezeli cyfra
x = liczba[i]-'0'; // to odejmujemy kod zera - zamieniamy kod cyfry na cyfre
else // jezeli litera - musi byc duza
x = liczba[i] - 55; // to odejmujemy 55 np. A(65) - 55 = 10
wynik += x*p; // do wyniku dodajemy otrzymana wartosc pomnozana przez podstawe systemu do odpowiedniej potegi
p *= system; // ustawiamy p na odpowiednia potege systemu
}
cout << wynik << endl;
return 0;
}
Ten program może zamieniać liczbe zapisana w systemie szesnastkowy oraz binarny na dziesiętny.
Jak skompilujesz ten program wybierasz 16/przepisujesz adres bez 0x/ wyświetla Ci się wynik.