我有一个16字节的数组,并且正在尝试将位数向左移-其中要移的位数可以从1到10不等。我尝试了下面的代码,但仅适用于4位移位:
Rx_Table[16] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0A, 0xBC};
if (byteezy == 0x00 && byteezy1 == 0x10) {
int i;
uint8_t shifted = 0x00;
uint8_t overflow = (0xF0 & RxTable[0]) >> 4;
for (i = (16 - 1); i >= 0; i--) {
shifted = (RxTable[i] << 4) | overflow;
overflow = (0xF0 & RxTable[i]) >> 4;
RxTable1[i] = shifted;
}
我被困住了:当要移位的位数可变时,该如何工作?