c语言中数据运算和符号的问题((i0>>0&0x1)*2-1)
最近在学习前辈们写的数据分析程序,有几个地方看不懂。这是其中的一行程序
xx[0]=2.0*(wire[0+off][i1]-4.25)+((i0>>0&0x1)*2-1)*drft[0];
我主要是((i0>>0&0x1)*2-1)看不懂是什么意思,或许这是某种运算的法则?
还请知道的人指点一下,谢谢!
for(Int_t i0=0;i0<16;i0++){ xx[0]=2.0*(wire[0+off][i1]-4.25)+((i0>>0&0x1)*2-1)*drft[0]; xx[1]=2.0*(wire[1+off][i2]-4.75)-((i0>>1&0x1)*2-1)*drft[1]; xx[2]=2.0*(wire[2+off][i3]-4.25)+((i0>>2&0x1)*2-1)*drft[2]; xx[3]=2.0*(wire[3+off][i4]-4.75)-((i0>>3&0x1)*2-1)*drft[3];}