View Full Version : [C++]Hex to Dec
// Convert a decimal number into a hexadecimal number
AnsiString hex_to_dec(AnsiString src)
{
AnsiString ret;
/*
pow( x, y );
x^y
*/
int * vet = new int[src.Length()];
for(int i = src.Length(); i < 0; i--)
{
for(int j = 0; j < src.Length(); j++)
{
vet[j] += std::pow(16.0, i);
switch (src[i])
{
case 'A':
vet[j] += 10;
break;
case 'B':
vet[j] += 11;
break;
case 'C':
vet[j] += 12;
break;
case 'D':
vet[j] += 13;
break;
case 'E':
vet[j] += 14;
break;
case 'F':
vet[j] += 15;
break;
}
ret += vet[j];
}
}
delete vet;
return ret;
}
Nn mi restituisce nulla:(
Un po' troppo complesso come programma di conversione !!!
Questo converte da base 10 in qualunque altra base (fino al numero massimo di simboli disponibili):
#include <string>
#include <iostream>
using namespace std;
string converti(int n10, int base)
{
string res;
bool neg = false;
char alpha[] =
"0123456789ABCDEFGHIJKLMOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
if(n10 < 0) neg = true;
n10 = (n10 < 0) ? -n10 : n10;
while(n10 > 0)
{
res.insert(res.begin(), alpha[n10 % base]);
n10 /= base;
}
if(neg) res.insert(res.begin(), '-');
return res;
}
mi complico la vita, eh??
Cmq a me interessa HEX => DEC poiche DEC => HEX la ho gia;)
// Convert a decimal number into a hexadecimal number
L'hai scritto tu !!! ;)
Comunque ti sei complicato molto la vita...
Basandoti sul programma che ho scritto io non è difficile fare un programma che converte da hex a dec...
Comunque tu prova...nel frattempo...lo faccio anche io...
Ho fatto il programma duale di quello di prima...questo converte da qualsiasi base in base 10...
Te li rimetto tutti insieme:
#include <string>
#include <iostream>
using namespace std;
string converti10Beta(int n10, int base)
{
string res;
bool neg = false;
char alpha[] =
"0123456789ABCDEFGHIJKLMOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
if(n10 < 0) neg = true;
n10 = (n10 < 0) ? -n10 : n10;
while(n10 > 0)
{
res.insert(res.begin(), alpha[n10 % base]);
n10 /= base;
}
if(neg) res.insert(res.begin(), '-');
return res;
}
int convertiBeta10(string n, int base)
{
int res = 0, mult = 1;
bool neg = false;
string alpha =
"0123456789ABCDEFGHIJKLMOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
if(n[0] == '-') neg = true;
for(int i=n.size()-1; i>=0; --i)
{
int pos = alpha.find_first_of(n[i]);
if(pos == string::npos || pos >= base)
return ~0;
res += pos * mult;
mult *= base;
}
return (neg) ? -res : res;
}
cmq sei anniluce + bravo di me!
cmq ekko il prog finito, se serve a qualcuno:D
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.