![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Número gigantes a Hexadecimal y visceversa
Buenas tardes, tengo el siguiente problema, cuando genero un GUID, quitando los guiones y llaves me queda un hexadecimal y requiero convertirlo a un número y de un número igualmente grande requiero convertirlo a hexadecimal, de antemano, muchas gracias.
__________________
mas confundido que Garavito el día del Niño. |
#2
|
|||
|
|||
Hola.
Puedes usar las funciones BinToHex y HexToBin, que te convierten de arrays de bytes a strings hexadecimales y viceversa respectivamente. Un saludo, LoPiTaL |
#3
|
||||
|
||||
gracias por responder LoPiTaL, casualmente se me había ocurrido algo por el estilo, pero no encontré algún ejemplo de convertir un string al binario y de binario a hexadecimal, necesitaría convertir esto E80BE67759E943559A65F02FAC6F6E83 a un string de números, y que este string de números lo pueda convertir nuevamente al valor inicial, si sabes de algún link donde expliquen algo parecido te agradeceré mucho, saludos.
__________________
mas confundido que Garavito el día del Niño. |
#4
|
|||
|
|||
Aquí tienes un link donde muestran un ejemplo de las dos funciones, usando para ello el nº PI con 10 bytes.
http://delphi.about.com/od/beginners...tlHexToBin.htm Te presento un código escrito en el navegador sólo como ejemplo. y con eso te lo convertirá de strings a array de bytes. Si no quieres usar array de AnsiChars, puedes usar también una AnsiString. Es cuestión de ir probando. Un saludo, LoPiTaL Última edición por ecfisa fecha: 31-08-2011 a las 19:23:38. Razón: Etiquetas [DELPHI] [/DELPHI] |
#5
|
||||
|
||||
Hola mightydragonlor.
Otra opción puede ser:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 02-09-2011 a las 05:02:32. |
#6
|
||||
|
||||
Hola a todos, no había podido dar repuesta por tanto trabajo, pero les cuento:
un hexadecimal EBD0A0A2B9E5443387C068B6B72699C7 lo convierto a decimal 313451834834061278758346828331453159879 así
y desde el hexadecimal lo paso a binario 1110101111010000101000001010001010111001111001010100010000110011100001111100000001101000101101101011 0111001001101001100111000111 así
desde el binario lo puedo pasar al hexadecimal así El gran problema es que desde el décimal no he podido pasarlo a hexadecimal, alguna idea?
__________________
mas confundido que Garavito el día del Niño. |
#7
|
||||
|
||||
Hola.
Para convertir una magnitud decimal a hexadecimal no conozco otro que el conocido método de obtener los restos de las sucesivas divisiones por 16. Usando arítmetica BCD podrías manejar números tales como 313451834834061278758346828331453159879, ya que no estás limitado al número de dígitos. Un saludo
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 11-09-2011 a las 01:48:27. |
#8
|
|||
|
|||
Cita:
Y el problema de la aritmética BCD, es que el nº que te salga en binario NO es su equivalente decimal, sino, tal como dice el nombre, una representación binaria de éste. Es decir, si realizas la conversión sum(2^(pos-1)) de todos los bits, no te saldría el nº decimal. Yo no veo solución para convertir números de más de 64 bits a decimal sin recurrir a truquitos como el BCD o así. Si alguien tiene solución, estaría encantado de conocerla. Un saludo, LoPiTaL |
#9
|
||||
|
||||
Hola LoPiTal.
Cita:
![]() En cuanto a obtenerlo manipulando BDC lo sugerí por la cantidad de dígitos que permite, pero realmente no se me ocurre de que modo se podría... Un saludo.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 11-09-2011 a las 18:47:38. |
#10
|
|||
|
|||
Yo pienso que, trabajando con strings, de la misma forma que de hexadecimal a binario, sólo que en lugar de convertir de [$0..$F] en [0000..1111], convertirias [0..9] en [0000..1001]. ¿Eso es BCD no, binary coded decimal? ¿O me estoy liando?
Un saludo, LoPiTaL |
#11
|
||||
|
||||
Alguien tiene algún código para pasar un entero a hexadecimal, que no sea el Format(), si es así os agradecería mucho.
__________________
mas confundido que Garavito el día del Niño. |
#12
|
||||
|
||||
Cita:
Esa función ya existe en Delphi, y es IntToHex. Ejemplo de uso:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#13
|
||||
|
||||
hola ecfisa, gracias por tu respuesta pero no es lo que necesito, necesito mas bien el algoritmo, para poder adaptarlo al TBCD, aunque he buscado bastante en google no he podido encontrar nada xD
__________________
mas confundido que Garavito el día del Niño. |
#14
|
||||
|
||||
Hola.
Fijate si te sirve de este modo:
Ejemplo de llamada:
Saludos. Edito: Pero te vas a topar con la limitante que hablábamos con LoPiTaL más arriba...
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 12-09-2011 a las 22:01:26. |
#15
|
||||
|
||||
Muchas gracias a todos, les cuento que alfín pude convertir el decimal gigante a hexadecimal, les dejo el código:
Y adicionalmente les dejo el proyecto de ejemplo en Lazarus, está comprimido en 7z así tenga extensión Zip, saludos y muchas gracias.
__________________
mas confundido que Garavito el día del Niño. |
![]() |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Codigo Hexadecimal | kdemia | Varios | 18 | 06-05-2014 12:56:48 |
Resta Hexadecimal ??? | Ðαяισš | Varios | 6 | 15-09-2010 11:34:17 |
Numero hexadecimal de 32 caracteres | adebonis | Varios | 2 | 15-11-2007 15:11:14 |
Como convierto un número binario a hexadecimal | abdel | Varios | 3 | 30-05-2004 17:21:46 |
de Hexadecimal a Decimal | Carlos A Ortega | Varios | 1 | 04-08-2003 22:14:56 |
![]() |
|