0

これは非常に基本的なことですが、どういうわけか問題がわかりません。

#include <iostream>

template <int dim>
inline
void
i2c(const int & ind, int & i, int &j) {
        i = (int) ind / dim;
        j =       ind & dim;
        //j = ind - i*dim;
}

static const int dim = 2;

int main() {
    int i,j;

    for (unsigned int c = 0; c < dim*dim; c++) {
        i2c<dim>(c,i,j);
        std::cout<<c<<"/"<<dim<<"="<<i<<"; "<<c<<"&"<<dim<<"="<<j<<std::endl;
    } 
    return 0;
}

ここにコードがあります。

出力は次のとおりです。

0/2=0; 0&2=0
1/2=0; 1&2=0
2/2=1; 2&2=2
3/2=1; 3&2=2

私が使用する場合j = ind - i*dim-すべて問題ありません。

EDIT1:私が盲目であることを恥じないように、誰かが質問を削除できますか?;)

4

1 に答える 1