我正在看如何在Java中表示二进制数。
一种选择是用作String并使用Integer.parseInt()来获取decimal值;

另一个选项(将2分配给b):

int b = 0b0010; //2
System.out.println(b);
System.out.println(Integer.toBinaryString(-2));


输出:

2
11111111111111111111111111111110


使用这种格式,如何表示-2:

int c=??//-b

最佳答案

使用Bitwise NOT运算符:

00000000000000000000000000000010 // 2 = 0b0010
00000000000000000000000000000001 // 1 = 0b0010-0b0001
11111111111111111111111111111110 // ~1 = ~(0b0010-0b0001)

11111111111111111111111111111110 // -2 = ~(0b0010-0b0001)


因此,您只需减去0b001并使用~按位运算符翻转所有位:

int b = ~(0b0010-0b0001); // ~(2-1) = ~1 = -2
System.out.println(b);
System.out.println(Integer.toBinaryString(b));


Demo

10-01 22:21