当试图编写一个真值表时,我试图弄清楚该算法,然后发现了一个可行的算法。但是,现在我不明白为什么它不引发ArithmeticException。
for(int i=0; i<Math.pow(2, numberOfInputs()); i++)
{
for(int j=0; j<numberOfInputs(); j++)
{
System.out.print("" + i/(int) Math.pow(2, j)%2 + "\t");
}
System.out.println("");
}
当numberOfInputs()返回2时,我得到:
Truthtable
0 0
1 0
0 1
1 1
但是我不明白这是怎么回事,因为Math.pow(2,j)%2会多次= 0 =!