[an error occurred while processing this directive]
|
К примеру
unsigned char i;
Сдвиг в лево это
i<<=1;
Сдвиг в в право
i>>=1;
Если нужно сдвинуть так чтобы не потеряллись данные (если char - 8 int - 16 бит) то это
unsigned int j = i<<4; // это сдвинули i так что в старшем байте j старшие 4 бита i а в младшем - младшие.
если i было 10101111b
то стало j 00001010 1111000
тогда чтобы получить младшие биты из j, в чар, нужно сделать
unsigned char k = (j&0xFF) >> 4
к будет равно 00001111
Если нужны старшие из j
то просто
unsigned char m = j>>8; или m = j/0xff;