Bitwise
Shift Values
Left and right shifts move bits to multiply or divide unsigned values by powers of two.
Shift Values
shift_values.c
#include <stdio.h>
int main(void) {
unsigned int value = ;
unsigned int doubled = value << 1;
unsigned int halved = doubled >> 1;
printf("doubled=%u halved=%u\n", doubled, halved);
return 0;
}
#include <stdio.h>
int main(void) {
unsigned int value = ;
unsigned int doubled = value << 1;
unsigned int halved = doubled >> 1;
printf("doubled=%u halved=%u\n", doubled, halved);
return 0;
}
#include <stdio.h>
int main(void) {
unsigned int value = ;
unsigned int doubled = value << 1;
unsigned int halved = doubled >> 1;
printf("doubled=%u halved=%u\n", doubled, halved);
return 0;
}
left shift
`value << n` moves bits left and multiplies by `2^n` for these small unsigned values.
right shift
`value >> n` moves bits right and divides by `2^n` for these small unsigned values.