[ Foro de C ]

operador de corrimiento

06-Mar-2020 17:35
Invitado (jhordy)
1 Respuestas

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;       ------->>>>> ?????????????


08-Mar-2020 11:33
Nacho Cabanes (+84)

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.)