Я пытаюсь превратить матричную шахматную доску в unsigned long long. Если в этой позиции есть монета, я обновляю соответствующую маску. Heres мой кодПреобразование шахматной доски в битмаску
unsigned long long int mask = 0;
cout<<mask<<endl;
for(int i=0;i<8;++i)
for(int j=0;j<8;++j){
int pos = i*8+j;
cin>>board[i][j];
if(board[i][j] == 'P')
mask|=(1<<pos);
}
for(int i=0;i<8;++i)
{
for(int j=0;j<8;++j)
{
int pos = i*8+j;
if(mask&(1<<pos))
cout<<1;
else
cout<<0;
}
cout<<endl;
}
Но когда я даю следующие входные
........
...P....
.....P..
...P....
........
........
P......P
.......P
выход следующим
00000000
00010000
10000101
00010001
00000000
00010000
10000101
00010001
, которая явно не так. Но я не вижу здесь никакой ошибки. заранее спасибо.