Autor Tema: Manejar bits de variable int16  (Leído 2187 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado aitorsp

  • PIC18
  • ****
  • Mensajes: 296
Manejar bits de variable int16
« en: 29 de Mayo de 2012, 13:07:11 »
Hola:

Cual seria la mejor manera de acceder a los bits de una variable int16 ?

Por ejemplo si quiero quedarme con 12 bits de la variable y eliminar los 3 mas significativos cual es la forma mas sencilla?


Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Manejar bits de variable int16
« Respuesta #1 en: 29 de Mayo de 2012, 13:30:25 »
Podes crear una estructura o una unión para trabajar con cada rango de bits.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado aitorsp

  • PIC18
  • ****
  • Mensajes: 296
Re: Manejar bits de variable int16
« Respuesta #2 en: 29 de Mayo de 2012, 13:40:47 »
Podes crear una estructura o una unión para trabajar con cada rango de bits.
Saludos!

Podrias por favor poner un ejemplo sencillo ?. En el caso de querer los 12 bits y eliminar los 3 mas altos de una variable int16

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1256
Re: Manejar bits de variable int16
« Respuesta #3 en: 29 de Mayo de 2012, 14:23:37 »
hola aitorsp.

variable16 = variable16 & 0x0FFF;

te sirve?.

saludos.
A un microcontrolador hay que sacarle hasta el ultimo byte....(YO)

Cómo puede ser que un pic24EP512 me quede corto de memoria, señores de MICROCHIP saquen pics con más memoria flash

Más de 45 mil lineas de codigo y aun no termino el equipo, asu mare!!

S34ML08G1TFI200 no necesito mas memoria externa.

Desconectado aitorsp

  • PIC18
  • ****
  • Mensajes: 296
Re: Manejar bits de variable int16
« Respuesta #4 en: 29 de Mayo de 2012, 14:25:53 »
hola aitorsp.

variable16 = variable16 & 0x0FFF;

te sirve?.

saludos.

Gracias aunque tengo curiosidad por el ejemplo con la estructura

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Manejar bits de variable int16
« Respuesta #5 en: 29 de Mayo de 2012, 14:35:23 »
Código: C
  1. uint16 Val;
  2. struct{
  3.     unsigned L12bits:12;
  4.     unsigned H4bits:4;
  5. }Data;
  6.  
  7. Data.L12bits=0x256;
  8. Val=Data.L12bits


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado aitorsp

  • PIC18
  • ****
  • Mensajes: 296
Re: Manejar bits de variable int16
« Respuesta #6 en: 29 de Mayo de 2012, 16:32:36 »
Código: C
  1. uint16 Val;
  2. struct{
  3.     unsigned L12bits:12;
  4.     unsigned H4bits:4;
  5. }Data;
  6.  
  7. Data.L12bits=0x256;
  8. Val=Data.L12bits


Saludos!

Vale ok, gracias aunque me gustaria entenderlo un poco.

unsigned L12bits:12;
unsigned H4bits:4;


Esas dos instrucciones que indican?

Data.L12bits=0x256;

Aqui me imagino que accedes la variable L12bits pero por que le asignas 0x256 ?

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Manejar bits de variable int16
« Respuesta #7 en: 29 de Mayo de 2012, 17:34:37 »
Utiliza el buscador como para buscar más ejemplos y teoría sobre estructuras en C  ;-)

http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Estructuras  -> Estructura de campos de bits


Saludos!


No contesto mensajes privados, las consultas en el foro

Desconectado aitorsp

  • PIC18
  • ****
  • Mensajes: 296
Re: Manejar bits de variable int16
« Respuesta #8 en: 29 de Mayo de 2012, 18:04:16 »
Utiliza el buscador como para buscar más ejemplos y teoría sobre estructuras en C  ;-)

http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Estructuras  -> Estructura de campos de bits


Saludos!




Ok, gracias. Aclarado!!!