• Jueves 2 de Mayo de 2024, 04:42

Autor Tema:  Pasar De Binario A Hexadecimal  (Leído 2185 veces)

Devilcpc

  • Miembro activo
  • **
  • Mensajes: 90
    • Ver Perfil
Pasar De Binario A Hexadecimal
« en: Jueves 5 de Octubre de 2006, 14:30 »
0
Buenas

tengo una pequeña duda...

tengo un AnsiString que posee un numero binario, ej: 10101111 y quisiera pasarlo a su correspondiente equivalente en Hexadecimal, ej: AF.

Queria saber si hay alguna funcion para pasarlo directamente, algo como: BinToHex (Numero);
o tengo q hacerlo yo?

en fin... si alguien tiene idea q por favor me diga

gracias

Adrian
-- Solo se q no se nada, pero aun supero a la generalidad de todos los hombres q no saben eso tampoco --

eL_MoStRo

  • Nuevo Miembro
  • *
  • Mensajes: 18
    • Ver Perfil
Re: Pasar De Binario A Hexadecimal
« Respuesta #1 en: Jueves 5 de Octubre de 2006, 18:48 »
0
Espero y te sirvan creo que funcionan bien sin embargo no probe con muchos valores

Código: Text
  1.  
  2. //---------------------------------------------------------------------------
  3. AnsiString BinToInt(AnsiString sVal)
  4. {
  5.     int iAcum = 0;
  6.     for (int iI = sVal.Length(), iJ = 0; iI > 0; iI--, iJ++)
  7.     {
  8.         if (sVal[iI] == '1')
  9.         {
  10.             iAcum += pow (2, iJ);
  11.         }
  12.     }
  13.  
  14.     return String(iAcum);
  15. }
  16. //---------------------------------------------------------------------------
  17. AnsiString IntToHex(AnsiString sVal)
  18. {
  19.     int iRes = StrToInt(sVal);
  20.     int iMod;
  21.     AnsiString sHex = "";
  22.     char cChar;
  23.  
  24.     do {
  25.         iMod = iRes % 16;
  26.         switch (iMod)
  27.         {
  28.             case 10: cChar = 'A'; break;
  29.             case 11: cChar = 'B'; break;
  30.             case 12: cChar = 'C'; break;
  31.             case 13: cChar = 'D'; break;
  32.             case 14: cChar = 'E'; break;
  33.             case 15: cChar = 'F'; break;
  34.             default: cChar = iMod;
  35.         }
  36.  
  37.         sHex.Insert(String(cChar),1);
  38.         iRes /= 16;
  39.  
  40.     } while(iRes > 9);
  41.  
  42.  
  43.  
  44.     sHex.Insert(String(iRes),1);
  45.  
  46.     return sHex;
  47. }
  48.  
  49.  

Devilcpc

  • Miembro activo
  • **
  • Mensajes: 90
    • Ver Perfil
Re: Pasar De Binario A Hexadecimal
« Respuesta #2 en: Jueves 5 de Octubre de 2006, 20:02 »
0
Ok

gracias por el codigo, ahora me voy a poner a probarlo y despues te comento si me funciono  ;)

Saludos

Adrian
-- Solo se q no se nada, pero aun supero a la generalidad de todos los hombres q no saben eso tampoco --

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: Pasar De Binario A Hexadecimal
« Respuesta #3 en: Sábado 9 de Diciembre de 2006, 07:00 »
0
Gracias por las rutinas, las modifique y adapte a un soft y funcan de maravillas.. le hice una reforma a la rutina de int2hex, si alguien la quiere me avisa y la subo, estas de aca no funcionan con algunos decimales. Saludos!
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Pasar De Binario A Hexadecimal
« Respuesta #4 en: Sábado 9 de Diciembre de 2006, 08:13 »
0
Bueno si. Subilas que mas de uno les va a sacar provecho.
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Pasar De Binario A Hexadecimal
« Respuesta #5 en: Sábado 9 de Diciembre de 2006, 19:22 »
0
Citar
si alguien la quiere me avisa y la subo, estas de aca no funcionan con algunos decimales. Saludos!
Si © Jonathan © subila, que a muchos les servira.

BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"