C的右移部门

时间:2014-08-31 19:51:54

标签: c

我是C的绝对初学者,我正在努力学习位移。我写了一个小程序,通过右移来测试分区。

以下是代码:

#include<stdio.h>


int shift_divide_by_16(int x);

int main() {

        int x = 32;
        int y = shift_divide_by_16(x);
        printf("%d\n", y);
        return 0;

}

int shift_divide_by_16(int x) {

        x >> 4;
        printf("%d\n", x);
        return x;
}

该程序打印32 32。为什么不打印2 2

感谢。

2 个答案:

答案 0 :(得分:4)

您需要将值分配回x

x = x >> 4

答案 1 :(得分:2)

您也可以使用:

x >>= 4;