Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在java中生成64位长的值_Java_64 Bit - Fatal编程技术网

无法在java中生成64位长的值

无法在java中生成64位长的值,java,64-bit,Java,64 Bit,最近我对位操作和算术产生了兴趣。我计划编写一个代码来表示一个棋盘,使用一个64位长的变量,其中每一位代表一个单元格 我遇到了如下问题: public class Chess { public static void main(String[] args) { long v = (1 << 63 ) - 1; System.out.println(Long.MAX_VALUE+ " " +v); System.out.println(Long.toBinary

最近我对位操作和算术产生了兴趣。我计划编写一个代码来表示一个棋盘,使用一个64位长的变量,其中每一位代表一个单元格

我遇到了如下问题:

public class Chess {

public static void main(String[] args) {
    long v = (1 << 63 ) - 1;
    System.out.println(Long.MAX_VALUE+ " " +v);
    System.out.println(Long.toBinaryString(v));
    System.out.println(Long.bitCount(v));
}

}
这是不正确的

我需要一个64位二进制字符串。我使用的是64位机器和64位Windows操作系统


请帮忙

您有一个
int
文本,因此当尝试按
63
进行位移位时,只考虑
63
的最后5位--
31

使用
long
literal(附加“L”)到位移位:

long v = (1L << 63 ) - 1;

非常感谢..我试错了“L”这个词..我爱死你了
long v = (1L << 63 ) - 1;