写2字节补码java

写2字节补码java,java,binary,Java,Binary,在java中,如果你想用二进制表示法写一个数字,你可以写 System.out.println(0b0001); 哪个会打印1 如果您写入特定的32位,它将解释为2位补码,即: System.out.println(0b11111111111111111111111111111110); 将打印-2 如何为不是32位的数字写2补码?(特别是对于大于32位的数字,如long)您必须在它后面加一个L,表示它是长的 long val =0b11111111111111111111111111

在java中,如果你想用二进制表示法写一个数字,你可以写

 System.out.println(0b0001); 
哪个会打印1

如果您写入特定的32位,它将解释为2位补码,即:

System.out.println(0b11111111111111111111111111111110);
将打印-2


如何为不是32位的数字写2补码?(特别是对于大于32位的数字,如long)

您必须在它后面加一个
L
,表示它是
长的

long val  =0b111111111111111111111111111111111111111111111111111111111101100L;
System.out.println(val);
印刷品

-20

是的,我知道如何做长,但这不是2-补码,只是数字,如果它是2-补码编码,它将是负的,因为它以1I开始修改我的答案。