短和长的按位OR(java)

时间:2016-04-28 21:50:47

标签: java casting bit-manipulation

以下代码计算数字的奇偶校验。

问题是计数^ =(数字& 1)行中会发生什么。按位AND运算将导致long。在短(计数)和长(数字& 1)之间执行按位OR,这应该导致长。 为什么结果仍然可以保存在短暂的(计数)中?

long number=17;

public short parityCalc() {
    short count=0;

    for(int c=0;c<64;c++){
        count^=(number&1);
        number>>>=1;
    }
    return count;
}

0 个答案:

没有答案