关于#c语言#的问题: mtr->IdcBuf[2] = (mtr->IdcBuf[0]>>2) + (mtr->IdcBuf[1]>>2) + (idc>>1)

数组移位问题
怎么理解最后一行?
        idc <<= 4;
        mtr->IdcBuf[0] = mtr->IdcBuf[1];
        mtr->IdcBuf[1] = mtr->IdcBuf[2];
        mtr->IdcBuf[2] = (mtr->IdcBuf[0]>>2) + (mtr->IdcBuf[1]>>2) + (idc>>1);

右移之后的值相加呗。
移位指的是2进制数往左或者往右移动。
理论上来说 右移一位可以理解为除2 左移一位可以理解为乘2