[Perl] palabras de 10 bits

Salvador Ortiz Garcia sog@msg.com.mx
Thu, 11 Sep 2003 12:07:11 -0500


On Wed, 2003-09-10 at 19:03, miguel angel altamirano del carmen wrote:
> gEstoy haciendo un programa en perl para extraer informacion de palabras de 
> 10 bits, de archivos binarios de 200 Megas de tama%o. Existe alguna opcion 
> para hacer esto directamente como si se extrajeran palabras de 8 bits usando 
> unpack:
> ($valor) = unpack("C*",$file);

Si la arquitectura en la que estas trabajando usa en forma nativa
palabras de 10 bits, lo que buscas es unpack("S!*",...)
(S! = native-unsigned-short)

Pero si el archivo lo tienes en una arquitectura más estándar ("shorts"
nativos de 16 bits) necesitas conocer tanto el "endian" (bit order) de
la arquitectura en que se creó el archivo como el posible "padding"
utilizado, desempacarlo usando 'n' o 'v' segun sea el caso y ajustar la
salida usando los operadores '>>' y '<<'.

Saludos.
-- 
Salvador Ortiz Garcia <sog@msg.com.mx>
Matías Software Group