2014-01-20 6 views
0

Публикация здесь впервые! Ив искал и искал и не мог найти ответ. Мне действительно не нужна таблица, просто чтобы иметь такой вид вывода, как 0 и 0 = 0, 0 и 1 = 1, и т. Д. Мне нужно прочитать из файла, который будет извлекать числа и они равны 0 0..0 1..1 0..1 1 Мне нужно затем сделать таблицы AND, OR, NAND и NOR для них. Я создал для них массивList, так что я могу получить к ним доступ легче. метод, который я собирался сделать, не работает и займет очень длинные строки кода и в значительной степени дублируется. Я пытаюсь думать о способе использования цикла, но имеет ментальный блок. Кто-нибудь может мне помочь? Вот что им говорить о коде я естьСоздание бинарной правды «таблица»

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"); 
     } 
    } 

это реально не работает для или заявление either..its просто гигантский беспорядок 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

Вы могли бы упростить это :

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 
Смежные вопросы