C/Visual C - Cambio de Bases

 
Vista:

Cambio de Bases

Publicado por Giovani (2 intervenciones) el 29/06/2005 00:23:52
Ayuda por favor, como puedo cambiar de una base decimal a una octal, hexagesimal, etc. Te lo agradecerìa muchìsimo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Cambio de Bases

Publicado por fernando.gomez (1603 intervenciones) el 29/06/2005 00:41:37
Un número decimal se representa de forma normal: 1, 2, 5, 199, 254, etc. Un número octal se representa prefijando un 0 al valor: 01, 02, 07, 016, etc. Un número hexadecimal se representa prefijando un 0x: 0x1, 0x2, 0x6, 0x1A, 0xFF, etcétera.

A nivel de variables numéricas no hay diferencia. Las siguientes sentencias son válidas:

int i = 0x14;
int j = 16;
int k = 07;
int m = i+j+k;

Esto es porque el valor es el mismo. Ahora, la cosa cambia cuando las transformas a caracteres. Al hacer esto, usualmente empleas la función itoa o sus variantes (p.e. ltoa). Esta función tiene un tercer parámetro en el cuál indicas la base del número. Así:

char szNum[50] = "";
int iValor;

iValor = 5;
itoa(iValor, szNum, 10);
cout << szNum << endl; // imprime: "5"

iValor = 255;
itoa(iValor, szNum, 16);
cout << szNum << endl; // imprime "0xFF"

etcétera. También hay algunas otras funciones, como std::hex:

cout << hex << 25 << endl; // imprime "0x19"

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar