2014-01-20 55 views
0

第一次在這裏發佈!所以我搜索和搜索,找不到答案。我真的不需要一個表,只是爲了有這樣的輸出,如 0和0 = 0, 0和1 = 1, 等等... 我需要讀取一個文件,將提取數字它們是0 0..0 1..1 0..1 1 我需要爲它們製作AND,OR,NAND和NOR「表」。 我爲他們創建了一個arrayList,所以我可以更容易地訪問它們。我打算做的方法不起作用,並且需要非常長的代碼行並且幾乎是重複的東西。我試圖想出一種方法來使用循環,但有心理障礙。任何人都可以幫助我嗎? 繼承人什麼即時通訊談論的代碼,我創建二進制真值「表」

int rec3a = Integer.parseInt(list1.get(2)); 
    int rec3b = Integer.parseInt(list1.get(3)); 
     System.out.println("AND:"); 
     if(rec3a == 0 && rec3b == 0) 
     { 
      System.out.println("0"); 
     } 
     if(rec3a == 0 && rec3b == 1) 
     { 
      System.out.println("0"); 
     } 
     if(rec3a == 1 && rec3b == 0) 
     { 
      System.out.println("0"); 
     } 
     if(rec3a == 1 && rec3b == 1) 
     { 
      System.out.println("1"); 
     } 
    } 

這並不真的只是一個巨大的爛攤子lol..any幫助將不勝感激

回答

3

你可以使用位運算符,

int rec3a = 1; 
int rec3b = 0; 
// AND 
System.out.println(rec3a & rec3b); 
// OR 
System.out.println(rec3a | rec3b); 
// NAND 
System.out.println((rec3a & rec3b) == 1 ? 0 : 1); 
// NOR 
System.out.println((rec3a | rec3b) == 1 ? 0 : 1); 

這(在這個例子中)輸出

0 
1 
1 
0 
+0

OMG謝謝你!我不知道這件事。我將如何去採取相反的做法?對於NAND和NOR?我試着做〜(rec3a&rec3b),但它給出了一個-1 –

+0

@ user3216846我用三元符號將NAND和NOR添加到我的答案中。 –

+0

哦,我沒有看到.. ..忍受..太感謝了!現在一切運轉順利:) –

2

您可以簡化這OR語句either..its工作:

if (rec3a == 1 && rec3b == 1) 
    { 
     System.out.println("1"); 
    } 
    else 
    { 
     System.out.println("0"); 
    } 

對於OR情況下,這將是:

if (rec3a == 1 || rec3b == 1) 
    { 
     System.out.println("1"); 
    } 
    else 
    { 
     System.out.println("0"); 
    } 
2

用整數0和1,您可以使用內置的bit-wise operators

System.out.println(rec3a & rec3b); //AND 
System.out.println(rec3A | rec3b); //OR