Convertir byte[] a entero...

11/01/2007 - 20:31 por RFOG | Informe spam
... pero en hexadecimal.

Tengo un array de bytes con un número formateado en caracteres
hexadecimales:

"056E7FF" (imaginemos que es un array de byte).

Necesito convertir ese valor a un número decimal, es decir, meter su valor
en una variable númerica de tipo int.

La conversión mediante BitConverter no me funciona porque lo que hay en el
array no es realmente un número, si no el equivalente en ASCII.

La conversión pasando del array de bytes a string no me funciona porque en
lugar de ponerme la tira de bytes como una cadena me pone una cadena
describiendo la variable.

Imagino que hay algo evidente pero que no he sido capaz de encontrar, con lo
fácil que es en C++ nativo:

int num=atoi(array,16); //16 es la base.

Ya sé que puedo convertirlo "a mano", recorriendo cada byte y haciendo las
operaciones, pero tiene que haber algo en el .NET que lo haga.


Visita mi blog principal: http://rfog.blogsome.com
Y este sobre programación: http://geeks.ms/blogs/rfog
Libros, ciencia ficción y programación
El secreto de aburrir a la gente consiste en decirlo todo.
 

Leer las respuestas

#1 Octavio Hernandez
12/01/2007 - 02:00 | Informe spam
Hola Rafa,

Mira a ver si esto te vale:

http://support.microsoft.com/kb/835454/en-us

Slds - Octavio


"RFOG" escribió en el mensaje
news:
... pero en hexadecimal.

Tengo un array de bytes con un número formateado en caracteres
hexadecimales:

"056E7FF" (imaginemos que es un array de byte).

Necesito convertir ese valor a un número decimal, es decir, meter su valor
en una variable númerica de tipo int.

La conversión mediante BitConverter no me funciona porque lo que hay en el
array no es realmente un número, si no el equivalente en ASCII.

La conversión pasando del array de bytes a string no me funciona porque en
lugar de ponerme la tira de bytes como una cadena me pone una cadena
describiendo la variable.

Imagino que hay algo evidente pero que no he sido capaz de encontrar, con
lo fácil que es en C++ nativo:

int num=atoi(array,16); //16 es la base.

Ya sé que puedo convertirlo "a mano", recorriendo cada byte y haciendo las
operaciones, pero tiene que haber algo en el .NET que lo haga.


Visita mi blog principal: http://rfog.blogsome.com
Y este sobre programación: http://geeks.ms/blogs/rfog
Libros, ciencia ficción y programación
> El secreto de aburrir a la gente consiste en decirlo todo.


Preguntas similares