2012-04-08 75 views
1

我想知道你將如何改變二進制數和反向的1和0?我知道如何改變一個整數轉換成二進制已經的Java:更改二進制數位的0比1和1比0的

Example 1: 5 as a parameter would return 2 
Steps: 5 as a binary is 101 
      The complement is 010 
      010 as an integer is 2 

代碼爲整數更改爲二進制數

import java.io.*; 
public class DecimalToBinary{ 
    public static void main(String args[]) throws IOException{ 
    BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); 
    System.out.print("Enter the decimal value:"); 
    String hex = bf.readLine(); 

    int i = Integer.parseInt(hex); 


    String bynumber = Integer.toBinaryString(i); 


    System.out.println("Binary: " + bynumber); 
    } 
} 

如果有人代碼,請幫忙,謝謝!

+2

並解釋什麼是與您當前密碼的問題。 – Mahesh 2012-04-08 22:48:42

+0

注意到是錯我的代碼,到目前爲止,我只需要在扭轉二進制數例幫助:101 = 010 – TriggerLess 2012-04-08 22:55:42

回答

3

使用按位不起作用~

int num = 0b10101010; 
System.out.println(Integer.toBinaryString(num));   // 10101010 
System.out.println(Integer.toBinaryString((byte) ~num)); // 1010101 (note the absent leading zero) 
+0

謝謝,我會嘗試,現在 – TriggerLess 2012-04-08 22:53:54

4

你並不需要明確地將其轉換爲二進制文件。您可以使用bitwise operators

+0

謝謝,會嘗試這種現在 – TriggerLess 2012-04-08 22:55:58

3
int i = Integer.parseInt(numString); 
i = ~i; 

應該這樣做。

+1

那麼,如果它是一個十六進制,那麼它應該是parseInt(十六進制,16),不應該嗎? – 2012-04-08 22:52:54

+0

OP使用十六進制表示字符串輸入。你是對的,它應該有一個更好的名字。 – scientiaesthete 2012-04-08 22:54:27

相關問題