从 32 位二进制字符串到 int Java 的转换
Conversion from 32 bit binary string to int Java
为什么这个代码
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:"The '-' sign can be specified to indicate negative values"。为什么前两个二进制字符串不同?
这就是二进制补码的工作原理。要取反一个数字,它会反转所有位并将结果加 1。
示例:
否定
11110001 ----------> 00001111
为什么这个代码
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:"The '-' sign can be specified to indicate negative values"。为什么前两个二进制字符串不同?
这就是二进制补码的工作原理。要取反一个数字,它会反转所有位并将结果加 1。
示例: 否定 11110001 ----------> 00001111