为什么这段代码
public static void main(String[] args){
// | | | | | | | |
int N = (int)Long.parseLong("10110011001100111111001111111100", 2);
System.out.println(Integer.toBinaryString(N));
N = Integer.parseInt ("-0110011001100111111001111111100", 2);
System.out.println(Integer.toBinaryString(N));
N = Integer.parseInt ("+0110011001100111111001111111100", 2);
System.out.println(Integer.toBinaryString(N));
}
输出:
10110011001100111111001111111100
11001100110011000000110000000100
110011001100111111001111111100
Javadocs:"' - '可以指定符号来表示负值"。为什么前两个二进制字符串不同?
答案 0 :(得分:0)
这就是两人的补充方式。为了否定一个数字,它反转所有位并将1加到结果中。
实施例: 否定 11110001 ----------> 00001111