我正在嘗試將矩陣棋盤轉換爲無符號長long。如果在該位置有一枚硬幣,我會更新相應的面具。我的繼承人代碼將棋盤轉換爲位掩模
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
這顯然是錯誤的。但我在這裏似乎沒有發現任何錯誤。提前致謝。