Conversion de datos

28/11/2006 - 16:30 por Catalin Lungu | Informe spam
Hola,
A ver si me puede aclarar alguien sobre una duda que tengo sobre la
conversion de un entrero a un array de bytes. Se supone que un System.Int32
ocupa 4 bytes en memoria y un entero tiene un rango -2,147,483,648 a
2,147,483,647
Cual seria la representación de este entero en los 4 bytes. Para strings lo
hago asi:

public static byte[] ConvertStringToByteArray(string stringToConvert)
{
return (new UTF8Encoding()).GetBytes(stringToConvert);
}

pero para enteros, doubles, datetime no se hacerlo.

Es que tengo que escribir un monton de cosas 256 bytes de memoria de una
smartcard.

Gracias,
C.
 

Leer las respuestas

#1 Alberto Poblacion
28/11/2006 - 17:12 | Informe spam
"Catalin Lungu" wrote in message
news:
A ver si me puede aclarar alguien sobre una duda que tengo sobre la
conversion de un entrero a un array de bytes. Se supone que un
System.Int32 ocupa 4 bytes en memoria y un entero tiene un
rango -2,147,483,648 a 2,147,483,647
Cual seria la representación de este entero en los 4 bytes. Para strings
lo hago asi:

public static byte[] ConvertStringToByteArray(string stringToConvert)
{
return (new UTF8Encoding()).GetBytes(stringToConvert);
}

pero para enteros, doubles, datetime no se hacerlo.

Es que tengo que escribir un monton de cosas 256 bytes de memoria de una
smartcard.



Una idea: Crea un MemoryStream y escribe sobre él con un BinaryWriter. El
método Write del BinaryWriter está sobrecargado y acepta los varios tipos
que quieres escribir:

byte[] arraydebytes = new byte[256];
MemoryStream ms = new MemoryStream(arraydebytes);
BinaryWriter bw = new BinaryWriter(ms, Encoding.UTF8);
bw.Wrtite(stringToConvert);
bw.Write(entero);
bw.Write(doble);
...
bw.Close();

Preguntas similares