簡體   English   中英

從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:“可以指定'-'符號以指示負值”。 為什么前兩個二進制字符串不同?

這就是兩者的互補作用。 要取一個數字,它會將所有位取反,並將結果加1。

示例: 否定 11110001 ----------> 00001111

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM