在提到按位运算符时,! 之间有什么区别?和〜?我觉得他们都翻转了位,但 1 可能会在最终答案上加 1?
~0xC4
compared to
!0xC4
谢谢!
最佳答案
!
不是按位运算符,而是 bool 运算符。
bool 运算符对真值进行操作,真值通常为 int
。任何非零值都为真,而 0 为假。结果总是 1
表示真,0
表示假。
!
不是 bool 值&&
是 bool 值和||
是 bool 值或
这些是用于例如if
因为它需要一个 bool 值。 bool 和/或运算符也是短路的,这意味着它们在知道结果时停止评估。这很好,这意味着 1 || crash_and_burn()
永远不会崩溃和燃烧。
但是按位运算符当然会在提升等之后对整数类型参数的每一位进行运算。
~
不是按位&
是按位和|
是按位或^
是按位异或 (xor)
按位运算符(当然)不是短路,这没有任何意义,因为它们只是对位对进行运算。请注意,虽然有 ^
位运算符,但没有 ^^
bool 异或运算符。
关于c - 类似位运算符之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16338928/