我是编程新手。我正在尝试打印真相表。它包含AND,OR,XOR,NOT。我完成了前3个部分。但是当我试图编写“NOT”部分时,我从编译器得到错误“int unary operator(!)”的错误操作数。
class oneandzero{
public static void main (String [] args){
boolean p,q;
int a,b;
System.out.println("P\tQ\tAND\tOR\tXOR\tNOT P\tNOT Q");
p=false; q=false;
a=(p)?1:0;
b=(q)?1:0;
System.out.println(a+"\t"+b+"\t"+(a&b)+"\t"+(a|b)+"\t"+(a^b)+"\t"+(!a)+"\t"+(!b));
p=false; q=true;
a=(p)?1:0;
b=(q)?1:0;
System.out.println(a+"\t"+b+"\t"+(a&b)+"\t"+(a|b)+"\t"+(a^b)+"\t"+(!a)+"\t"+(!b));
p=true; q=false;
a=(p)?1:0;
b=(q)?1:0;
System.out.println(a+"\t"+b+"\t"+(a&b)+"\t"+(a|b)+"\t"+(a^b)+"\t"+(!a)+"\t"+(!b));
p=true; q=true;
a=(p)?1:0;
b=(q)?1:0;
System.out.println(a+"\t"+b+"\t"+(a&b)+"\t"+(a|b)+"\t"+(a^b)+"\t"+(!a)+"\t"+(!b));
}
}
答案 0 :(得分:2)
逻辑NOT运算符!
仅对布尔值起作用:
!true == false
!false == true
您可能需要按位NOT运算符~
,它对整数起作用:
~0b00000000 == 0b11111111
~0b11111111 == 0b00000000
// or for single bits, (~x & 1):
~0 & 1 == 1
~1 & 1 == 0