elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  BitConverter Duda
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: BitConverter Duda  (Leído 2,284 veces)
CATBro

Desconectado Desconectado

Mensajes: 156


Envidio la manera de pensar de Caboose


Ver Perfil
BitConverter Duda
« en: 29 Octubre 2011, 07:10 am »

Yo y mis dudas  :xD  bueno, lo que pasa es que no estoy seguro si estoy entiendo bien el uso de la clase Bitconverter, lo que entiendo es que me permite convertir de un tipo de dato a otro pero puedo elegir cuantos bits(bytes) quiero convertir de ese valor? Estuve practicando pero mi razonamiento no entra con los resultados pero estoy entiendo bien o mal, les mostraria el codigo pero ya no se que le hice Jeje

Saludos


En línea

Unbr0ken

Desconectado Desconectado

Mensajes: 248



Ver Perfil
Re: BitConverter Duda
« Respuesta #1 en: 29 Octubre 2011, 09:00 am »

...


La clase BitConverter te ayuda a manejar los tipos de valores como una serie de bytes, es decir, convierte un tipo de valor específico en una matriz de bytes y viceversa.

Mejor dicho, te convierte matrices de bytes a algún tipo de dato específico integrado en la clase, o de un tipo de dato específico integrado en la clase a una matriz de bytes.

Para convertir de un tipo de dato a otro tipo de dato usa la clase Convert.


En línea

Cita de: Snowcrash
Discutir con desconocidos por internet es un ejercicio de imbéciles; todos acaban siendo quinceañeros arrogantes con cantidades infinitas de tiempo libre.

NO resuelvo dudas vía MP, para algo está el foro.
CATBro

Desconectado Desconectado

Mensajes: 156


Envidio la manera de pensar de Caboose


Ver Perfil
Re: BitConverter Duda
« Respuesta #2 en: 29 Octubre 2011, 10:14 am »

Entonces de un tipo de dato a una matriz de bytes,

Código:
            public Packet(byte[] dataStream)
        {
            // Read the data identifier from the beginning of the stream (4 bytes)
            this.dataIdentifier = (DataIdentifier)BitConverter.ToInt32(dataStream, 0);

            // Read the length of the name (4 bytes)
            int nameLength = BitConverter.ToInt32(dataStream, 4);

            // Read the length of the message (4 bytes)
            int msgLength = BitConverter.ToInt32(dataStream, 8);

            // Read the name field
            if (nameLength > 0)
                this.name = Encoding.UTF8.GetString(dataStream, 12, nameLength);
            else
                this.name = null;

            // Read the message field
            if (msgLength > 0)
                this.message = Encoding.UTF8.GetString(dataStream, 12 +    nameLength, msgLength);
            else
                this.message = null;
        }




En ese codigo , lo que hace es convertir de bytes a enteros, y de bytes a un tipo de clase? pero los parametros donde dice datastream supongo que es el arreglo de  bytes de donde hara la conversion, pero el segundo parametro que significa??

Saludos
 
En línea

Unbr0ken

Desconectado Desconectado

Mensajes: 248



Ver Perfil
Re: BitConverter Duda
« Respuesta #3 en: 29 Octubre 2011, 14:13 pm »

...


No sé que IDE estés usando, pero el del Visual Studio 2010 (No recuerdo cuales otras versiones), muestra la definición de los parámetros requeridos en una función de una clase interna de .NET Framework (O de una referencia, en caso de tener definición), en otras palabras, el mismo IDE te dice lo que me estás preguntando:



Cabe destacar que el parámetro startindex es base cero, por tal, comenzará a obtener los 4 bytes desde la posición establecida a tal base. (Obtiene 4 bytes porque obviamente los valores enteros (int) ocupan 4 bytes en memoria).

De todos modos, si te quedan dudas, revisa la función .ToInt32() de la clase BitConverter.
« Última modificación: 29 Octubre 2011, 14:16 pm por Unbr0ken » En línea

Cita de: Snowcrash
Discutir con desconocidos por internet es un ejercicio de imbéciles; todos acaban siendo quinceañeros arrogantes con cantidades infinitas de tiempo libre.

NO resuelvo dudas vía MP, para algo está el foro.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Pequeña duda con un comando batch (NUEVA DUDA RELACIONADA)
Scripting
revenge1252 9 9,763 Último mensaje 13 Febrero 2008, 21:41 pm
por revenge1252
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines