Java 逻辑 XOR ("^") 与逻辑 NOT ("!")

标签 java javafx bit-manipulation

通过查看 JavaFX 中的一些自定义库 https://github.com/HanSolo/submitbutton/blob/master/src/main/java/eu/hansolo/submitbutton/Demo.java .

I came along with this piece of code:

                 if (toggle) {  //where toogle is a boolean
                    if (progress > 0.75) {
                            progress = 0;
                            button.setFailed();
                            timer.stop();
                            toggle ^= true;
                        }
                    } else {
                        if (progress > 1) {
                            progress = 0;
                            timer.stop();
                            toggle ^= true;
                        }
                    }
                 }

Question

为什么程序员写了 toggle ^= true; 我明白它的作用 following the table below :

A   B   A ^ B
0   0     0
0   1     1
1   0     1
1   1     0

而不是使用 toggle=!toggle;?

这是一种模式,它与任何性能改进有关还是个人偏好?我很好奇,因为我第一次看到这个...

最佳答案

FWIW,它不是 boolean 值之间的“按位运算”。这是一个“逻辑操作”。 boolean 值之间的运算符和整数之间的运算符是不同的,但它们是相关的。

关于Java 逻辑 XOR ("^") 与逻辑 NOT ("!"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39782218/

相关文章:

css - 文本对齐对齐但向右

JavaFX child 与项目

c# - 将字节数组转换为位数组?

algorithm - 抛硬币中的位运算

java - 切换 MediaView 不起作用

java - Spring数据设置实体

Java 图形无法正确绘制

java - Spring 和 Servlet 3.0 Java 配置困惑

bit-manipulation - Verilog 签名与未签名示例以及第一个

java - java中如何将字符串转换为RegularTimePeriod?