德摩根定律

use*_*605 5 java boolean-logic demorgans-law

我试图使用DeMorgan定律简化以下内容:(x!= 0 || y!= 0)

x!= 0是否简化为x> 0?或者我错在以下方面:

 !(x>0 || y>0)
 !(x>0) && !(y>0)
 ((x<=0) && (y<=0))
Run Code Online (Sandbox Code Playgroud)

谢谢.

Ale*_* C. 5

x!= 0是否简化为x> 0?

不,那不是真的.因为整数是签名的.


如何简化: !(x!=0 || y !=0)

考虑这个规则:

  1. 在此输入图像描述(第二德摩根定律)

  2. 在此输入图像描述

它意味着1.

!(x!=0 || y !=0) <=> (!(x!=0)) && (!(y != 0))

它意味着2.

(!(x!=0)) && (!(y != 0)) <=> (x == 0) && (y == 0)


要测试,您可以编写以下循环:

for(int x = -5; x < 5; x++){
     for(int y = -5; y < 5; y++){
         if(!(x!=0 || y !=0))
            System.out.println("True : ("+x+","+y+")");
    }
}
Run Code Online (Sandbox Code Playgroud)