我正在看一个教程,到目前为止,它给出了以下代码:
boolean p, q;
System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
p = true; 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 = true; 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));
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));任务是修改程序,使其使用1's和0's,而不是true和false。
我不确定这是否是通过强制转换不兼容的类型来完成的,但我认为这是一种方法,因为这是它之前的部分。
有没有人能给出一些建议和解释,解释它为什么会起作用?
发布于 2012-02-02 22:26:09
这不是本教程要求您做的事情。我想他们想让你用int替换boolean,用1替换true,用0替换false,就像这样:
int p, q;
System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
p = 1; q = 1;
System.out.print(p + "\t" + q + "\t");
System.out.print((p&q) + "\t" + (p|q) + "\t");
System.out.println((p^q) + "\t" + (1-p)); // EDIT: was !p这将引导您理解整数0和1上的按位操作。
发布于 2012-12-08 01:29:16
这是我的解决方案//逻辑表,使用1和0
类LogicOpTable {
public static void main(String args[]) {
int p, q;
System.out.println("P\tQ\t"+
"AND\tOR\tXOR\tNOT");
for (p = 1; p >= 0; p--) {
for (q = 1; q >= 0; q--) {
System.out.println(p + "\t" + q + "\t" +
(p & q) + "\t" + (p | q) +
"\t" + (p ^ q) + "\t" + (1 - p));
}
} }}
发布于 2012-02-02 22:25:40
不能将布尔值转换为int。这些是完全不同的类型。
但是您可以编写一个实用方法booleanToInt(boolean b),它将布尔值转换为整型。
https://stackoverflow.com/questions/9113896
复制相似问题