我希望能够创建一个基本的国际象棋引擎(或者不能的话,跳棋/西洋跳棋)。在研究这个主题之后,我相信我想使用一系列位棋盘。我对这个概念有了基本的了解,但我在Java中表示它们时遇到了问题。
我试图使用长整型来表示国际象棋棋盘上的白色棋子为1,其他所有棋子为0:
但是当我打印出来后,我得到了以下46位:
什么导致了这个结果?我肯定自己有些基本的误解;如果有人能指点一下我,我会非常感激。
我试图使用长整型来表示国际象棋棋盘上的白色棋子为1,其他所有棋子为0:
long whitePieces = 0000000000000000000000000000000000000000000000001111111111111111L;
但是当我打印出来后,我得到了以下46位:
System.out.println(Long.toBinaryString(whitePieces));
1001001001001001001001001001001001001001001001
什么导致了这个结果?我肯定自己有些基本的误解;如果有人能指点一下我,我会非常感激。
05
是哪个数字?答案:5
。改为制作一个二维布尔数组。或者使用某种编码的整数代替多个这样的数组。 - keyser1111111111111111
的二进制表示,它不会是1111111111111111
...1111111111111111
是二进制数1111111111111111
的二进制表示,其对应的整数为65535
。 - rid