como pasar la funcion BitConverter de VB.NEt a C?

Iniciado por Belial & Grimoire, 28 Enero 2014, 20:25 PM

0 Miembros y 1 Visitante están viendo este tema.

Belial & Grimoire

hola

tengo un array byte donde guardo informacion guardada por ReadFile, por ejemplo

BYTE buffer[1024]

ReadFile(HFile, buffer, sizeof(buffer), 0);

en VB.net hay una funcion que te convierte bytes en enteros se llama Bitconverter.ToInt16, lo que supuestamente hace es buscar un offset y lo que haya en ese offset lo convierte en decimal

por ejemplo

offset = &HD

BitConverter.ToInt16(buffer, offset)

alli, hasta donde yo se, es que busca en el array BYTE buffer el offset o hexadecimal que en este caso seria 0x0D, y el contenido alli lo cambia a decimal

por ejemplo

primero busca en el array 0x0D, cuando lo encuentra hay un valor que es 0x08 y lo convierte a decimal que igual seria 8, pero puede cambiar el valor, podria ser 0xAF, 0x13, etc...

Entonces quisiera saber como podria leer el array BYTE para encontrar el offset y hacer la conversion de hexadecimal a decimal de lo que haya en cierto offset pero en codigo C

porque Bitconverter convierte dependiendo la base, por ejemplo Int16 convierte los dos primeros bytes, int32 convierte los 4 primeros bytes y int64 convierte los 8 primeros bytes

entonces si por ejemplo en el offset 0x0B hay un valor 0x0102, como encontraria el offset 0x0B para cambiar el valor 0x0102 de hexadecimal a decimal?

me podrian poner algun ejemplo porfavor
.                                 

x64core

Pues talvez en NET los array son almacenados en forma diferente ya que si dices que tienes un array de bytes entonces la representación
de la base numerica es aparte a menos a que te refieras que tienes un array de characteres y no de bytes.