IntToBytes y viceversa
Que tal gente, queria saber como poder pasar un Integer (4 bytes) a un arreglo de bytes, es decir, a groso modo en delphi tendria que ser hipoteticamente asi
El ejemplo es para ilustrar mejor el problema, osea quiza tmb necesite, o no, algun flag para el signo u otras cosas. A lo que voy es que no necesariamente quiero que quede asi el codigo, la idea es la conversion. Saludos |
Hola.
Para pasar un entero a binario: Luego podés recorrer la cadena resultante para asignar los valores a tu arreglo. Saludos. |
Gracias ecfisa, pero no hay una manera mas rapida que separar el binario en grupos de 8 ?
|
Resuelto.. cada numero corresponde a 256^Posicion * Numero[Posicion]
|
function BytesToInt(Num: intBytes): Integer;
begin Result:= 256^3 * Num[3] + 256^2 * Num[2] + 256 * Num[1] + Num[0]; end; function IntToBytes( X: Integer ): intBytes; begin Result[0]:= X mod 256; Result[1]:= X div 256; Result[2]:= X div 256^2; Result[3]:= X div 256^3; end; |
Hola kdemia.
No entiendo muy bién tu última pregunta, pero si quisieras hacer algo mas "a medida" al código de tu primer consulta: Que sería similar a llamar a IntToBin(n, 4). Te estarías ahorrando el pasaje al arreglo, eso sí... Saludos. Edito: Me llamaron mientras estaba editando y no ví tus 2 nuevos mensajes. Pero veo que ya encontraste otra solución, me alegra mucho:) |
Por favor:
|
Si entiendo bien la pregunta, se podría hacer algo como esto:
Lo que hacemos es tener un puntero a un arreglo de x bytes (probablemente 4, pero nunca hay que fiarse de la longitud de un Integer, porque el tamaño puede variar), y una variable Integer propiamente dicha. Después asignamos al puntero la dirección de memoria del entero y listo. Espero sirva. Saludos. |
La franja horaria es GMT +2. Ahora son las 10:00:26. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi