[C con Clase] Leer ciertos bits de una variable WORD

Juan Pablo San Martín coyotedemon en gmail.com
Sab Oct 4 14:19:00 CEST 2008


Se agradecen las respuestas, pero la variable está definida en otro 
sistema, y ya viene así. De todas maneras, con el código de Zaka Elab me 
funcionó bastante bien.

De todas maneras, muchas gracias.

JPS

Juan escribió:
> Hola David, sabes que te digo, te he enviado otro mensaje, pero quiero rectificarlo, tienes razón, usar una union con una estructura de bits es lo mejor, porque aunque el WORD nos venga como parámetro en una función, o bien queramos pasar un WORD, nada nos impide usar la unión.
> Así que mil perdones.
> Juan
>
>
>
>
>
>
>
>
> El pasado 2008-10-04 01:10:43, David escribió:
>  
> D> la forma correcta de hacer lo que vos queres es la siguiente:
> D> struct xxx {
> D> unsigned char valor1; // son 8 bits....
> D> unsigned char valor2 : 4; //le digo que tiene que ocupar solo 4 bits
> D> unsigned char valor3 : 4; //le digo que tiene que ocupar solo 4 bits
> D> }
> D> union {
> D> struct xxx bits;
> D> word var;
> D> } nombre;
> D> como lo usas... si queres referirte a la variable word seria nombre.word=10;
> D> o x = nombre.word;
> D> si queres usar alguno de los bits seria nombre.bits.valor1;
> D> David
> D> 2008/10/3 Juan <jmicanovelles en gmail.com>
> D> > Yo lo hago así:
> D> > #include <iostream>
> D> > using namespace std;
> D> > int main()
> D> > {
> D> > unsigned short word=12801;
> D> > cout<<"Formato 4 4 8"<<endl;
> D> > cout<<"word=12801 = 0011 0010 0000001"<<endl;
> D> > word=word<<4;
> D> > word=word>>12;
> D> > cout<<word<<endl;
> D> > word=291;
> D> > cout<<"Formato 8 4 4"<<endl;
> D> > cout<<"word=291 = 0000001 0010 0011"<<endl;
> D> > word=word<<8;
> D> > word=word>>12;
> D> > cout<<word<<endl;
> D> > }
> D> >
> D> > Un saludo.
> D> > juan
> D> >
> D> >
> D> >
> D> >
> D> >
> D> > El pasado 2008-10-03 14:52:05, Juan Pablo San Martín escribió:
> D> >
> D> > JPSM> Estimados:
> D> > JPSM>     Tengo una variable word con nombre XXX, la cual, dentro de los 16
> D> > JPSM> bits que tiene, tiene información con el siguiente esquema:
> D> > JPSM> BITS 0 al 7: valor 1
> D> > JPSM> BITS 8 al 11: valor 2
> D> > JPSM> BITS 12 al 15: valor 3
> D> > JPSM>     La cosa es que necesito obtener el valor 2, ¿alguien me puede dar
> D> > JPSM> una mano?
> D> > JPSM> Gracias de antemano,
> D> > JPSM> JPS
> D> > JPSM> _______________________________________________
> D> > JPSM> Lista de correo Cconclase Cconclase en listas.conclase.net
> D> > JPSM>
> D> > http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> D> > JPSM> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
> D> > _______________________________________________
> D> > Lista de correo Cconclase Cconclase en listas.conclase.net
> D> > http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> D> > Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
> D> >
> D> -- 
> D> (\__/)
> D> (='.'=)This is Bunny. Copy and paste bunny into your
> D> (")_(")signature to help him gain world domination.
> D> _______________________________________________
> D> Lista de correo Cconclase Cconclase en listas.conclase.net
> D> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> D> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
>   





Más información sobre la lista de distribución Cconclase