Integer の配列内のすべての組み合わせのすべての可能な合計を与えることを目的とするアルゴリズムを取得しました。
private void arraySumPermutation(int value ,int[] arr){
int N = arr.length;
for(int i=0;i<1<<N;i++){
int sum = 0;
for(int j=0;j<N;j++){
if((i & 1<<j)>0){
iCount++;
sum += arr[j];
//S.O.P(sum);
}
}
}
}
ビットごとの AND で追加された内部の if 条件が理解できません。内部ifループの目的は何ですか。
if((i & 1<<j)>0)