蓝桥轻泪 2022-11-09 22:44 采纳率: 44.4%
浏览 8
已结题

关于#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);

  • 写回答

1条回答 默认 最新

  • 关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月18日
  • 已采纳回答 11月10日
  • 创建了问题 11月9日