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

David fire ddfire en gmail.com
Sab Oct 4 17:32:28 CEST 2008


no entiendo lo de viene definida de otro sistema....
cuando te llega la metes en la varibale que creaste del tipo union y despues
la suas como se te da la gana.
cuando terminas haces variable.var y tenes el word otra vez....
aca esta la diferencia en hacer las cosas bien y que funcionen.
se llama calidad esa diferencia
David

El 4 de octubre de 2008 9:19, Juan Pablo San Martín
<coyotedemon en gmail.com>escribió:

> 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
>>
>>
>>
>
>
> _______________________________________________
> 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
>



-- 
(\__/)
(='.'=)This is Bunny. Copy and paste bunny into your
(")_(")signature to help him gain world domination.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20081004/60b99763/attachment.html>


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