Truth Table - 将布尔值转换为 1 和 0
Truth Table - Converting boolean value to 1 and 0
我目前正在阅读工作簿,Java 初学者指南。第 2 章有一个创建真相的小项目 table。显示的值采用 true 或 false 的格式。目标是改为显示 1 和 0。
我已尝试使用以下代码来执行此操作,但 String.valueOf
方法不适用于所有表达式。我不知道该怎么做。
package ChapterTwo;
public class LogicalOpTable {
public static void main(String[] args) {
boolean p, q;
System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
p = true; q = true;
String str0 = String.valueOf(p);
String str1 = String.valueOf(q);
str0 = true ? "1" : "2";
str1 = true ? "1" : "2";
System.out.print(p + "\t" + q +"\t");
System.out.print((p&q) + "\t" + (p|q) + "\t");
System.out.println((p^q) + "\t" + (!p));
p = true; q = false;
System.out.print(str0 + "\t" + str1 +"\t");
System.out.print((p&q) + "\t" + (p|q) + "\t");
System.out.println((p^q) + "\t" + (!p));
p = false; q = true;
System.out.print(p + "\t" + q +"\t");
System.out.print((p&q) + "\t" + (p|q) + "\t");
System.out.println((p^q) + "\t" + (!p));
p = false; q = false;
System.out.print(p + "\t" + q +"\t");
System.out.print((p&q) + "\t" + (p|q) + "\t");
System.out.println((p^q) + "\t" + (!p));
}
}
你写错了:
str0 = true ? "1" : "2";
str1 = true ? "1" : "2";
你的意思可能是:
str0 = (str0 == "true") ? "1" : "2";
str1 = (str1 == "true") ? "1" : "2";
但您甚至可以更快地完成(并在创建 str0
和 str1
时删除第一个分配):
str0 = p ? "1" : "2";
str1 = q ? "1" : "2";
EDIT :另请注意,在更改 p
或 [=20 的值时,您必须重新计算 str0
和 str1
=] 如果你愿意的话。所以你可能想像@DThought 回答的那样编写一个子函数。
编辑 2:子功能可能如下:
static String printBoolean(boolean b) {
return b ? "1" : "2";
}
并在您的主代码中使用此函数,如下所示:
System.out.print(printBoolean(p&q) + "\t" + printBoolean(p|q) + "\t");
另请注意,您无需将同一段代码编写 4 次。您可以创建循环来遍历 (p,q)
.
的每个值
尝试制作如下方法:
私人静态字符串转换(布尔布尔);
以某种方式设置该方法,它会 return 你用“0”和“1”表示假和真,然后在你的打印结构中的任何地方使用该方法,你重新打印布尔值。
感谢大家的提示和提示,最后我的最终代码如下所示。
我知道可能有更简单的方法来做到这一点,但本书希望您利用前两章中的所有内容,所以我也包含了一个控制语句。
觉得还可以的请点赞
谢谢
// 试试这个 2-2:逻辑运算符的真值 table。
包第 2 章;
public class LogicalOpTable {
public static void main(String[] args) {
boolean p, q;
int a = 0, b = 0;
System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
p = true; q = true;
if(p) a = 1;
else a = 0;
if(q) b = 1;
else b = 0;
System.out.print(a + "\t" + b +"\t");
System.out.print(printBoolean(p&q) + "\t" + printBoolean (p|q) + "\t");
System.out.println(printBoolean2(p^q) + "\t" + printBoolean (!p));
p = true; q = false;
if(p) a = 1;
else a = 0;
if(q) b = 1;
else b = 0;
System.out.print(a + "\t" + b +"\t");
System.out.print(printBoolean(p&q) + "\t" + printBoolean (p|q) + "\t");
System.out.println(printBoolean2(p^q) + "\t" + printBoolean (!p));
p = false; q = true;
if(p) a = 1;
else a = 0;
if(q) b = 1;
else b = 0;
System.out.print(a + "\t" + b +"\t");
System.out.print(printBoolean(p&q) + "\t" + printBoolean (p|q) + "\t");
System.out.println(printBoolean2(p^q) + "\t" + printBoolean (!p));
p = false; q = false;
if(p) a = 1;
else a = 0;
if(q) b = 1;
else b = 0;
System.out.print(a + "\t" + b +"\t");
System.out.print(printBoolean(p&q) + "\t" + printBoolean (p|q) + "\t");
System.out.println(printBoolean2(p^q) + "\t" + printBoolean (!p));
}
public static String printBoolean(boolean p) {
return p ? "1" : "0";
}
public static String printBoolean2(boolean q) {
return q ? "1" : "0";
}
}
经过长时间的休假,我现在对 Gael 的评论和答案有了更好的理解,我不知道我怎么会这么蠢。请查看下面更新的代码,并请投票支持。谢谢,
package ChapterTwo;
// Try this 2-2: a truth table for the logical operators. package ChapterTwo;
public class LogicalOpTable {
public static void main(String[] args) {
boolean p, q;
System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
p = true; q = true;
System.out.print(printBoolean(p) + "\t" + (printBoolean2(q)) +"\t");
System.out.print(printBoolean(p&q) + "\t" + printBoolean (p|q) + "\t");
System.out.println(printBoolean2(p^q) + "\t" + printBoolean (!p));
p = true; q = false;
System.out.print(printBoolean(p) + "\t" + (printBoolean2(q)) +"\t");
System.out.print(printBoolean(p&q) + "\t" + printBoolean (p|q) + "\t");
System.out.println(printBoolean2(p^q) + "\t" + printBoolean (!p));
p = false; q = true;
System.out.print(printBoolean(p) + "\t" + (printBoolean2(q)) +"\t");
System.out.print(printBoolean(p&q) + "\t" + printBoolean (p|q) + "\t");
System.out.println(printBoolean2(p^q) + "\t" + printBoolean (!p));
p = false; q = false;
System.out.print(printBoolean(p) + "\t" + (printBoolean2(q)) +"\t");
System.out.print(printBoolean(p&q) + "\t" + printBoolean (p|q) + "\t");
System.out.println(printBoolean2(p^q) + "\t" + printBoolean (!p));
}
public static String printBoolean(boolean p) {
return p ? "1" : "0";
}
public static String printBoolean2(boolean q) {
return q ? "1" : "0";
}
}
public class LogicalOpTabl {
public static void main(String args[]) {
boolean p, q;
String a;
System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
p = true;
q = true;
a = ((p ? 1 : 0) + "\t" + (q ? 1 : 0) +"\t" + ((p&q)? 1 : 0) + "\t" + ((p|q)? 1:0) + "\t" + ((p^q)? 1 :0) + "\t" + ((!p)? 1 :0));
System.out.println(a);
p = true;
q = false;
System.out.println((p ? 1 : 0) + "\t" + (q ? 1 : 0) +"\t" + ((p&q)? 1 : 0) + "\t" + ((p|q)? 1:0) + "\t" + ((p^q)? 1 :0) + "\t" + ((!p)? 1 :0));
p = false;
q = true;
System.out.println((p ? 1 : 0) + "\t" + (q ? 1 : 0) +"\t" + ((p&q)? 1 : 0) + "\t" + ((p|q)? 1:0) + "\t" + ((p^q)? 1 :0) + "\t" + ((!p)? 1 :0));
p = false;
q = false;
System.out.println((p ? 1 : 0) + "\t" + (q ? 1 : 0) +"\t" + ((p&q)? 1 : 0) + "\t" + ((p|q)? 1:0) + "\t" + ((p^q)? 1 :0) + "\t" + ((!p)? 1 :0));
}
}
我也在研究那本书,很失望地发现本书或可下载的 Oracle 清单中没有这个问题的答案。
任何人,我是一个彻头彻尾的程序员菜鸟。上周刚开始看这本书,完全被这个问题卡住了。
这是我能想到的最好的解决方案,仅使用我到目前为止从书中学到的知识(2-2 问题 6)
class LogicalOpTable6 {
public static void main(String args[]) {
boolean p, q;
System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
p = true; q = true;
if(p)
System.out.print("1" + "\t");
if(!p)
System.out.print("0" + "\t");
if(q)
System.out.print("1" + "\t");
if(!q)
System.out.print("0" + "\t");
if(p&q)
System.out.print("1" + "\t");
if(!(p&q))
System.out.print("0" + "\t");
if(p|q)
System.out.print("1" + "\t");
if(!(p|q))
System.out.print("0" + "\t");
if(p^q)
System.out.print("1" + "\t");
if(!(p^q))
System.out.print("0" + "\t");
if(!p)
System.out.println("1");
if(!(!p))
System.out.println("0");
/* System.out.print(p + "\t" + q + "\t");
System.out.print((p&q) + "\t" + (p|q) + "\t");
System.out.println((p^q) + "\t" + (!p)); */
p = true; q = false;
if(p)
System.out.print("1" + "\t");
if(!p)
System.out.print("0" + "\t");
if(q)
System.out.print("1" + "\t");
if(!q)
System.out.print("0" + "\t");
if(p&q)
System.out.print("1" + "\t");
if(!(p&q))
System.out.print("0" + "\t");
if(p|q)
System.out.print("1" + "\t");
if(!(p|q))
System.out.print("0" + "\t");
if(p^q)
System.out.print("1" + "\t");
if(!(p^q))
System.out.print("0" + "\t");
if(!p)
System.out.println("1");
if(!(!p))
System.out.println("0");
/* System.out.print(p + "\t" + q + "\t");
System.out.print((p&q) + "\t" + (p|q) + "\t");
System.out.println((p^q) + "\t" + (!p)); */
p = false; q = true;
if(p)
System.out.print("1" + "\t");
if(!p)
System.out.print("0" + "\t");
if(q)
System.out.print("1" + "\t");
if(!q)
System.out.print("0" + "\t");
if(p&q)
System.out.print("1" + "\t");
if(!(p&q))
System.out.print("0" + "\t");
if(p|q)
System.out.print("1" + "\t");
if(!(p|q))
System.out.print("0" + "\t");
if(p^q)
System.out.print("1" + "\t");
if(!(p^q))
System.out.print("0" + "\t");
if(!p)
System.out.println("1");
if(!(!p))
System.out.println("0");
/* System.out.print(p + "\t" + q + "\t");
System.out.print((p&q) + "\t" + (p|q) + "\t");
System.out.println((p^q) + "\t" + (!p)); */
p = false; q = false;
if(p)
System.out.print("1" + "\t");
if(!p)
System.out.print("0" + "\t");
if(q)
System.out.print("1" + "\t");
if(!q)
System.out.print("0" + "\t");
if(p&q)
System.out.print("1" + "\t");
if(!(p&q))
System.out.print("0" + "\t");
if(p|q)
System.out.print("1" + "\t");
if(!(p|q))
System.out.print("0" + "\t");
if(p^q)
System.out.print("1" + "\t");
if(!(p^q))
System.out.print("0" + "\t");
if(!p)
System.out.println("1");
if(!(!p))
System.out.println("0");
/* System.out.print(p + "\t" + q + "\t");
System.out.print((p&q) + "\t" + (p|q) + "\t");
System.out.println((p^q) + "\t" + (!p)); */
}
它有很多行,我很清楚,但是在为第一行输入 if 语句后 table 它们可以复制到其他三行。
class LogicalOpTable {
public static void main(String[] args) {
System.out.println("P\tQ\tAND\tOR\tXOR\tNOT(P)");
boolean P, Q;
P = true;
Q = true;
if(P) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(Q) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(P&Q) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(P|Q) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(P^Q) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(!P) {
System.out.print("1\n");
}
else { System.out.print("0\n");
}
P = true;
Q = false;
if(P) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(Q) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(P&Q) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(P|Q) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(P^Q) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(!P) {
System.out.print("1\n");
}
else { System.out.print("0\n");
}
P = false;
Q = true;
if(P) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(Q) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(P&Q) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(P|Q) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(P^Q) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(!P) {
System.out.print("1\n");
}
else { System.out.print("0\n");
}
P = false;
Q = false;
if(P) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(Q) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(P&Q) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(P|Q) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(P^Q) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(!P) {
System.out.print("1\n");
}
else { System.out.print("0\n");
}
}
}
我相信这是解决方案:
// Try this 2-2: a truth table for the logical operators.
public class Example {
public static void main(String[] args) {
int p, q;
boolean b;
System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
p = 1; q = 1;
b = true;
System.out.print(p + "\t" + q + "\t");
System.out.print((p&q) + "\t" + (p|q) + "\t");
System.out.println((p^q) + "\t" + ((p*-p)+1));
p = 1; q = 0;
System.out.print(p + "\t" + q + "\t");
System.out.print((p&q) + "\t" + (p|q) + "\t");
System.out.println((p^q) + "\t" + ((p*-p)+1));
p = 0; q = 1;
System.out.print(p + "\t" + q + "\t");
System.out.print((p&q) + "\t" + (p|q) + "\t");
System.out.println((p^q) + "\t" + ((p*-p)+1));
p = 0; q = 0;
System.out.print(p + "\t" + q + "\t");
System.out.print((p&q) + "\t" + (p|q) + "\t");
System.out.println((p^q) + "\t" + ((p*-p)+1));
}
}
我目前正在阅读工作簿,Java 初学者指南。第 2 章有一个创建真相的小项目 table。显示的值采用 true 或 false 的格式。目标是改为显示 1 和 0。
我已尝试使用以下代码来执行此操作,但 String.valueOf
方法不适用于所有表达式。我不知道该怎么做。
package ChapterTwo;
public class LogicalOpTable {
public static void main(String[] args) {
boolean p, q;
System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
p = true; q = true;
String str0 = String.valueOf(p);
String str1 = String.valueOf(q);
str0 = true ? "1" : "2";
str1 = true ? "1" : "2";
System.out.print(p + "\t" + q +"\t");
System.out.print((p&q) + "\t" + (p|q) + "\t");
System.out.println((p^q) + "\t" + (!p));
p = true; q = false;
System.out.print(str0 + "\t" + str1 +"\t");
System.out.print((p&q) + "\t" + (p|q) + "\t");
System.out.println((p^q) + "\t" + (!p));
p = false; q = true;
System.out.print(p + "\t" + q +"\t");
System.out.print((p&q) + "\t" + (p|q) + "\t");
System.out.println((p^q) + "\t" + (!p));
p = false; q = false;
System.out.print(p + "\t" + q +"\t");
System.out.print((p&q) + "\t" + (p|q) + "\t");
System.out.println((p^q) + "\t" + (!p));
}
}
你写错了:
str0 = true ? "1" : "2";
str1 = true ? "1" : "2";
你的意思可能是:
str0 = (str0 == "true") ? "1" : "2";
str1 = (str1 == "true") ? "1" : "2";
但您甚至可以更快地完成(并在创建 str0
和 str1
时删除第一个分配):
str0 = p ? "1" : "2";
str1 = q ? "1" : "2";
EDIT :另请注意,在更改 p
或 [=20 的值时,您必须重新计算 str0
和 str1
=] 如果你愿意的话。所以你可能想像@DThought 回答的那样编写一个子函数。
编辑 2:子功能可能如下:
static String printBoolean(boolean b) {
return b ? "1" : "2";
}
并在您的主代码中使用此函数,如下所示:
System.out.print(printBoolean(p&q) + "\t" + printBoolean(p|q) + "\t");
另请注意,您无需将同一段代码编写 4 次。您可以创建循环来遍历 (p,q)
.
尝试制作如下方法: 私人静态字符串转换(布尔布尔);
以某种方式设置该方法,它会 return 你用“0”和“1”表示假和真,然后在你的打印结构中的任何地方使用该方法,你重新打印布尔值。
感谢大家的提示和提示,最后我的最终代码如下所示。 我知道可能有更简单的方法来做到这一点,但本书希望您利用前两章中的所有内容,所以我也包含了一个控制语句。
觉得还可以的请点赞
谢谢 // 试试这个 2-2:逻辑运算符的真值 table。 包第 2 章;
public class LogicalOpTable {
public static void main(String[] args) {
boolean p, q;
int a = 0, b = 0;
System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
p = true; q = true;
if(p) a = 1;
else a = 0;
if(q) b = 1;
else b = 0;
System.out.print(a + "\t" + b +"\t");
System.out.print(printBoolean(p&q) + "\t" + printBoolean (p|q) + "\t");
System.out.println(printBoolean2(p^q) + "\t" + printBoolean (!p));
p = true; q = false;
if(p) a = 1;
else a = 0;
if(q) b = 1;
else b = 0;
System.out.print(a + "\t" + b +"\t");
System.out.print(printBoolean(p&q) + "\t" + printBoolean (p|q) + "\t");
System.out.println(printBoolean2(p^q) + "\t" + printBoolean (!p));
p = false; q = true;
if(p) a = 1;
else a = 0;
if(q) b = 1;
else b = 0;
System.out.print(a + "\t" + b +"\t");
System.out.print(printBoolean(p&q) + "\t" + printBoolean (p|q) + "\t");
System.out.println(printBoolean2(p^q) + "\t" + printBoolean (!p));
p = false; q = false;
if(p) a = 1;
else a = 0;
if(q) b = 1;
else b = 0;
System.out.print(a + "\t" + b +"\t");
System.out.print(printBoolean(p&q) + "\t" + printBoolean (p|q) + "\t");
System.out.println(printBoolean2(p^q) + "\t" + printBoolean (!p));
}
public static String printBoolean(boolean p) {
return p ? "1" : "0";
}
public static String printBoolean2(boolean q) {
return q ? "1" : "0";
}
}
经过长时间的休假,我现在对 Gael 的评论和答案有了更好的理解,我不知道我怎么会这么蠢。请查看下面更新的代码,并请投票支持。谢谢,
package ChapterTwo;
// Try this 2-2: a truth table for the logical operators. package ChapterTwo;
public class LogicalOpTable {
public static void main(String[] args) {
boolean p, q;
System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
p = true; q = true;
System.out.print(printBoolean(p) + "\t" + (printBoolean2(q)) +"\t");
System.out.print(printBoolean(p&q) + "\t" + printBoolean (p|q) + "\t");
System.out.println(printBoolean2(p^q) + "\t" + printBoolean (!p));
p = true; q = false;
System.out.print(printBoolean(p) + "\t" + (printBoolean2(q)) +"\t");
System.out.print(printBoolean(p&q) + "\t" + printBoolean (p|q) + "\t");
System.out.println(printBoolean2(p^q) + "\t" + printBoolean (!p));
p = false; q = true;
System.out.print(printBoolean(p) + "\t" + (printBoolean2(q)) +"\t");
System.out.print(printBoolean(p&q) + "\t" + printBoolean (p|q) + "\t");
System.out.println(printBoolean2(p^q) + "\t" + printBoolean (!p));
p = false; q = false;
System.out.print(printBoolean(p) + "\t" + (printBoolean2(q)) +"\t");
System.out.print(printBoolean(p&q) + "\t" + printBoolean (p|q) + "\t");
System.out.println(printBoolean2(p^q) + "\t" + printBoolean (!p));
}
public static String printBoolean(boolean p) {
return p ? "1" : "0";
}
public static String printBoolean2(boolean q) {
return q ? "1" : "0";
}
}
public class LogicalOpTabl {
public static void main(String args[]) {
boolean p, q;
String a;
System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
p = true;
q = true;
a = ((p ? 1 : 0) + "\t" + (q ? 1 : 0) +"\t" + ((p&q)? 1 : 0) + "\t" + ((p|q)? 1:0) + "\t" + ((p^q)? 1 :0) + "\t" + ((!p)? 1 :0));
System.out.println(a);
p = true;
q = false;
System.out.println((p ? 1 : 0) + "\t" + (q ? 1 : 0) +"\t" + ((p&q)? 1 : 0) + "\t" + ((p|q)? 1:0) + "\t" + ((p^q)? 1 :0) + "\t" + ((!p)? 1 :0));
p = false;
q = true;
System.out.println((p ? 1 : 0) + "\t" + (q ? 1 : 0) +"\t" + ((p&q)? 1 : 0) + "\t" + ((p|q)? 1:0) + "\t" + ((p^q)? 1 :0) + "\t" + ((!p)? 1 :0));
p = false;
q = false;
System.out.println((p ? 1 : 0) + "\t" + (q ? 1 : 0) +"\t" + ((p&q)? 1 : 0) + "\t" + ((p|q)? 1:0) + "\t" + ((p^q)? 1 :0) + "\t" + ((!p)? 1 :0));
}
}
我也在研究那本书,很失望地发现本书或可下载的 Oracle 清单中没有这个问题的答案。
任何人,我是一个彻头彻尾的程序员菜鸟。上周刚开始看这本书,完全被这个问题卡住了。
这是我能想到的最好的解决方案,仅使用我到目前为止从书中学到的知识(2-2 问题 6)
class LogicalOpTable6 {
public static void main(String args[]) {
boolean p, q;
System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
p = true; q = true;
if(p)
System.out.print("1" + "\t");
if(!p)
System.out.print("0" + "\t");
if(q)
System.out.print("1" + "\t");
if(!q)
System.out.print("0" + "\t");
if(p&q)
System.out.print("1" + "\t");
if(!(p&q))
System.out.print("0" + "\t");
if(p|q)
System.out.print("1" + "\t");
if(!(p|q))
System.out.print("0" + "\t");
if(p^q)
System.out.print("1" + "\t");
if(!(p^q))
System.out.print("0" + "\t");
if(!p)
System.out.println("1");
if(!(!p))
System.out.println("0");
/* System.out.print(p + "\t" + q + "\t");
System.out.print((p&q) + "\t" + (p|q) + "\t");
System.out.println((p^q) + "\t" + (!p)); */
p = true; q = false;
if(p)
System.out.print("1" + "\t");
if(!p)
System.out.print("0" + "\t");
if(q)
System.out.print("1" + "\t");
if(!q)
System.out.print("0" + "\t");
if(p&q)
System.out.print("1" + "\t");
if(!(p&q))
System.out.print("0" + "\t");
if(p|q)
System.out.print("1" + "\t");
if(!(p|q))
System.out.print("0" + "\t");
if(p^q)
System.out.print("1" + "\t");
if(!(p^q))
System.out.print("0" + "\t");
if(!p)
System.out.println("1");
if(!(!p))
System.out.println("0");
/* System.out.print(p + "\t" + q + "\t");
System.out.print((p&q) + "\t" + (p|q) + "\t");
System.out.println((p^q) + "\t" + (!p)); */
p = false; q = true;
if(p)
System.out.print("1" + "\t");
if(!p)
System.out.print("0" + "\t");
if(q)
System.out.print("1" + "\t");
if(!q)
System.out.print("0" + "\t");
if(p&q)
System.out.print("1" + "\t");
if(!(p&q))
System.out.print("0" + "\t");
if(p|q)
System.out.print("1" + "\t");
if(!(p|q))
System.out.print("0" + "\t");
if(p^q)
System.out.print("1" + "\t");
if(!(p^q))
System.out.print("0" + "\t");
if(!p)
System.out.println("1");
if(!(!p))
System.out.println("0");
/* System.out.print(p + "\t" + q + "\t");
System.out.print((p&q) + "\t" + (p|q) + "\t");
System.out.println((p^q) + "\t" + (!p)); */
p = false; q = false;
if(p)
System.out.print("1" + "\t");
if(!p)
System.out.print("0" + "\t");
if(q)
System.out.print("1" + "\t");
if(!q)
System.out.print("0" + "\t");
if(p&q)
System.out.print("1" + "\t");
if(!(p&q))
System.out.print("0" + "\t");
if(p|q)
System.out.print("1" + "\t");
if(!(p|q))
System.out.print("0" + "\t");
if(p^q)
System.out.print("1" + "\t");
if(!(p^q))
System.out.print("0" + "\t");
if(!p)
System.out.println("1");
if(!(!p))
System.out.println("0");
/* System.out.print(p + "\t" + q + "\t");
System.out.print((p&q) + "\t" + (p|q) + "\t");
System.out.println((p^q) + "\t" + (!p)); */
}
它有很多行,我很清楚,但是在为第一行输入 if 语句后 table 它们可以复制到其他三行。
class LogicalOpTable {
public static void main(String[] args) {
System.out.println("P\tQ\tAND\tOR\tXOR\tNOT(P)");
boolean P, Q;
P = true;
Q = true;
if(P) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(Q) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(P&Q) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(P|Q) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(P^Q) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(!P) {
System.out.print("1\n");
}
else { System.out.print("0\n");
}
P = true;
Q = false;
if(P) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(Q) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(P&Q) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(P|Q) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(P^Q) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(!P) {
System.out.print("1\n");
}
else { System.out.print("0\n");
}
P = false;
Q = true;
if(P) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(Q) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(P&Q) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(P|Q) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(P^Q) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(!P) {
System.out.print("1\n");
}
else { System.out.print("0\n");
}
P = false;
Q = false;
if(P) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(Q) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(P&Q) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(P|Q) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(P^Q) {
System.out.print("1\t");
}
else { System.out.print("0\t");
}
if(!P) {
System.out.print("1\n");
}
else { System.out.print("0\n");
}
}
}
我相信这是解决方案:
// Try this 2-2: a truth table for the logical operators.
public class Example {
public static void main(String[] args) {
int p, q;
boolean b;
System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
p = 1; q = 1;
b = true;
System.out.print(p + "\t" + q + "\t");
System.out.print((p&q) + "\t" + (p|q) + "\t");
System.out.println((p^q) + "\t" + ((p*-p)+1));
p = 1; q = 0;
System.out.print(p + "\t" + q + "\t");
System.out.print((p&q) + "\t" + (p|q) + "\t");
System.out.println((p^q) + "\t" + ((p*-p)+1));
p = 0; q = 1;
System.out.print(p + "\t" + q + "\t");
System.out.print((p&q) + "\t" + (p|q) + "\t");
System.out.println((p^q) + "\t" + ((p*-p)+1));
p = 0; q = 0;
System.out.print(p + "\t" + q + "\t");
System.out.print((p&q) + "\t" + (p|q) + "\t");
System.out.println((p^q) + "\t" + ((p*-p)+1));
}
}