以下代码计算数字的奇偶校验。
问题是计数^ =(数字& 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;
}