|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
|
[C++]Hex to Dec
Codice:
// 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;
}
__________________
Gnu/Linux User
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Un po' troppo complesso come programma di conversione !!!
Questo converte da base 10 in qualunque altra base (fino al numero massimo di simboli disponibili): Codice:
#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;
}
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
|
mi complico la vita, eh??
Cmq a me interessa HEX => DEC poiche DEC => HEX la ho gia
__________________
Gnu/Linux User
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
// 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... Ultima modifica di cionci : 14-12-2003 alle 12:12. |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ho fatto il programma duale di quello di prima...questo converte da qualsiasi base in base 10...
Te li rimetto tutti insieme: Codice:
#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;
}
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
|
cmq sei anniluce + bravo di me!
__________________
Gnu/Linux User
Ultima modifica di Luc@s : 14-12-2003 alle 12:35. |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
|
cmq ekko il prog finito, se serve a qualcuno
__________________
Gnu/Linux User
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:32.



















