SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: Devilcpc en Jueves 5 de Octubre de 2006, 14:30

Título: Pasar De Binario A Hexadecimal
Publicado por: Devilcpc en Jueves 5 de Octubre de 2006, 14:30
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
Título: Re: Pasar De Binario A Hexadecimal
Publicado por: eL_MoStRo en Jueves 5 de Octubre de 2006, 18:48
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.  
Título: Re: Pasar De Binario A Hexadecimal
Publicado por: Devilcpc en Jueves 5 de Octubre de 2006, 20:02
Ok

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

Saludos

Adrian
Título: Re: Pasar De Binario A Hexadecimal
Publicado por: © Jonathan © en Sábado 9 de Diciembre de 2006, 07:00
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!
Título: Re: Pasar De Binario A Hexadecimal
Publicado por: Mollense en Sábado 9 de Diciembre de 2006, 08:13
Bueno si. Subilas que mas de uno les va a sacar provecho.
Título: Re: Pasar De Binario A Hexadecimal
Publicado por: lencho en Sábado 9 de Diciembre de 2006, 19:22
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.