public GF2Polynomial shiftRight(){
  GF2Polynomial result=new GF2Polynomial(len - 1);
  int i;
  System.arraycopy(value,0,result.value,0,result.blocks);
  for (i=0; i <= result.blocks - 2; i++) {
    result.value[i]>>>=1;
    result.value[i]|=result.value[i + 1] << 31;
  }
  result.value[result.blocks - 1]>>>=1;
  if (result.blocks < blocks) {
    result.value[result.blocks - 1]|=value[result.blocks] << 31;
  }
  return result;
}

public GF2Polynomial shiftRight ( ) { GF2Polynomial result = new GF2Polynomial ( len - 1 ) ; int i ; System . arraycopy ( value , 0 , result . value , 0 , result . blocks ) ; for ( i = 0 ; i <= result . blocks - 2 ; i ++ ) { result . value [ i ] >>>= 1 ; result . value [ i ] |= result . value [ i + 1 ] << 31 ; } result . value [ result . blocks - 1 ] >>>= 1 ; if ( result . blocks < blocks ) { result . value [ result . blocks - 1 ] |= value [ result . blocks ] << 31 ; } return result ; }
returns this gf2polynomial shift - right by 1 in a new gf2polynomial .
