如何从16个字节的数组向左移n位?

时间:2018-07-03 09:33:25

标签: c bit-shift

我有一个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;
    }

我被困住了:当要移位的位数可变时,该如何工作?

0 个答案:

没有答案