[ Foro de C ]
saludos amigos, tengo una duda respecto a un codigo generado que tengo que revisar para un proyecto, soy nuevo en la programación espero su apoyo y comprensión.
aqui mi codigo.
#define LED_COUNT 10
typedef struct {
uint8_t r;
uint8_t g;
uint8_t b;
} rgb_color;
int main (void)
{
uint16_t time = 1234;
colores rgb_color [LED_COUNT];
para (uint16_t i = 0; i <LED_COUNT; i ++)
{
uint8_t x = (tiempo >> 2) - 8 * i;
colores [i] = (rgb_color) {x, 255 - x, x};
}
}
resulta que al momento de verificar los datos guardados en la estructura .
cuando i=0, r = 52 , g =203 , b= 52
cuando i = 1 , r = 44 , g =211 , b= 44
..
.
.
.
alguien me podría explicar que procedimiento realiza esta parte del codigo para obtener esos resultados.
uint8_t x = (tiempo >> 2) - 8 * i; ------->>>>> ?????????????
El operador ">>" desplaza los bits del número varias posiciones hacia la derecha. Tienes más detalles aquí:
http://www.aprendeaprogramar.com/mod/resource/view.php?id=665
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)