Título: Duda en conversion de 24 bits a 32 bits Publicado por: armizh en 22 Enero 2012, 23:53 pm Hola pues tengo aqui una pequeña duda, que a pesar de buscar en internet en miles de paginas (cortesia de google) no he podido solucionar. Es un pequeño dilema que me he ganado por el tema del endianness. Pues quiero convertir un entero de 24 bits a uno de 32 ya que estoy trabajando con el LBA para el acceso a las unidades de discos soportadas por ATA/ATAPI e IDE. Partimos de la base de que ya tengo separados en bytes el entero. Bueno, dentro de la etiqueta 'code' esta lo que he entendido buscando informacion. De antemano, gracias.
Código: // Inicialmente tengo el numero 0xA0B0C0 el cual es de 24 bits. Título: Re: Duda en conversion de 24 bits a 32 bits Publicado por: BlackZeroX en 23 Enero 2012, 00:21 am Hasta donde yo se un numero por decir uno el "24" en un int de 8, 16, 24, 32 y 64 SIEMPRE tendran los mismos bits encendidos.
Prueba estas funciones que te arme Código
Edito: Aclaración: las funciones son para Dezplazar el signo y poner en donde corresponde el bit de signo... en tal caso que no quieras desplazarlo solo debes aplicar mascaras: entero24 = 0xffffff & entero32; entero32 = entero24; Dulces Lunas!¡. Título: Re: Duda en conversion de 24 bits a 32 bits Publicado por: armizh en 23 Enero 2012, 00:58 am Ohhh gracias pero una pregunta... los enteros que estoy usando son sin signos, las mascaras para no desplazar el signo valen no? Gracias
Título: Re: Duda en conversion de 24 bits a 32 bits Publicado por: BlackZeroX en 23 Enero 2012, 01:35 am Si son sin signo entonces usa las mascaras e ignora las funciones...
Dulces Lunas!¡. Título: Re: Duda en conversion de 24 bits a 32 bits Publicado por: x64core en 23 Enero 2012, 01:49 am @BlackZeroX:
:huh: el binario del EFFFFF es: 1110 1111 1111 1111 1111 1111 y como se supone que son 24 bits entonces el signo no seria el bit 24? :P Título: Re: Duda en conversion de 24 bits a 32 bits Publicado por: armizh en 23 Enero 2012, 03:20 am @BlackZeroX: Pero eso no importa mucho xd finalmente eran enteros sin signo por lo que no influye.:huh: el binario del EFFFFF es: 1110 1111 1111 1111 1111 1111 y como se supone que son 24 bits entonces el signo no seria el bit 24? :P Si son signo entonces usa las mascaras e ignora las funciones... Gracias, me imaginaba eso. Muchisimas gracias. SaludosDulces Lunas!¡. Título: Re: Duda en conversion de 24 bits a 32 bits Publicado por: BlackZeroX en 23 Enero 2012, 07:03 am Si perdon en lugar de 0xefffff es 0x7fffff en las funciones... pero no importa (en el problema del creador de este hilo) en lo que va a hacer el tiene que hacer esta mascara 0xffffff
Dulces Lunas!¡. |