为什么没有任何编程语言支持按位加法和按位减法

why doesn't any programming language provide support for bitwise addition and bitwise substraction

1)当已经定义了按位加法和按位减法的逻辑时,为什么没有任何编程语言(据我所知)提供对这些操作的支持。 2)为什么只支持按位AND、OR、Ex-or等运算

按位加法,即将每个位与另一个操作数的相应位相加,位之间没有进位(或者,模 2^1),只是 xor,适用于大多数语言。

按位减法毫无意义。我从未听说过它,也找不到任何 有意义的 定义。您首先必须选择如何表示负数,但是:

  • 在二进制补码中,~0 + 1 = 0~1 + 1 = 1,因此 01 都像 0,因为它们是它们自己的倒数。还有其他怪事。
  • Sign-magnitude 没有为幅度留下位,所以你只有正零和负零。我不清楚算术在那里应该如何工作以及它是否有用。
  • 您只能将值正一和零,或值负一和零分配给位0和1。如果您选择第一个,并为您的操作写#,您将获得正常的回绕0 # 0 = 0, 0 # 1 = 1, 1 # 0, 1 # 1 = 0 再次异或。在另一种情况下,0 # 0 = 0, 0 # 1 = 1, 1 # 0 = 1, 1 # 1 = 0 which ... huh, xor again。所以唯一有意义的定义相当于按位加法。

此外,按位非和按位and/or是一个完整的布尔运算符系统,所以无论你想象"bitwise subtraction"是什么按位运算,你都可以用它们轻松实现。