有没有办法在 java 中使用 1ULL?

Is there a way to use 1ULL in java?

所以我在java中做了一个国际象棋引擎,这涉及到很多位操作,我一直在看一些C代码来寻找灵感。在代码中,他使用打印语句:

        for (int rank = 0; rank < 8; rank++){
        for (int file = 0; file < 8; file++) {

            int square = rank * 8 + file;
            printf("%d", (bitboard & (1ULL << sqaure)) ?1 :0 );

        }
    } 

这个方法的重点是它循环遍历一个 64 位的 long,并打印出一个 8x8 的方块来表示一个棋盘,1s 代表被选中的方块,0s 代表空方块。 现在我熟悉这个代码块中的所有内容,除了 1ULL。它代表什么?有什么方法可以让我在 java 中使用它,或者我什至不需要担心它?

1ULL 是一个 unsigned long long - 可能是 64 位。它的意思是:数字“1”,但是是一个 unsigned long long。未签名的部分实际上并不重要,所以,只需.. 1L << square 就可以完成这项工作。 (java 也有这个后缀字母的东西,但只有 F、D 和 L,用于 float、double 和 long)。