为什么 (a | b ) 等于 a - (a & b) + b?

2023-12-22

我正在寻找一种使用 Oracle 数据库执行 BITOR() 的方法,并遇到了一个仅使用 BITAND() 的建议,将 BITOR(a,b) 替换为 a + b - BITAND(a,b)。

我手动测试了几次,并验证它似乎适用于我能想到的所有二进制数,但我无法快速找出数学证明来证明为什么这是正确的。
有人可以启发我吗?


A & B 是 A 和 B 中都打开的位的集合。A - (A & B) 留给您仅在 A 中打开的所有位。将 B 添加到其中,您将获得所有在 A 中打开的位。 A 中的或 B 中的那些。

A 和 B 的简单加法不起作用,因为两者都有 1 位。通过首先删除 A 和 B 共有的位,我们知道 (A-(A&B)) 将没有与 B 共有的位,因此将它们加在一起可以保证不会产生进位。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 (a | b ) 等于 a - (a & b) + b? 的相关文章

随机推荐

  • 离开网页时发出警报

    当我尝试关闭包含未保存更改的 Google 文档选项卡时 这就是我在浏览器 FF 3 5 中看到的内容 您确定要离开吗 从这个页面 您对此有未保存的更改 文档 单击立即取消 然后 拯救 来拯救他们 单击 立即确定 即可 丢弃它们 按 确定
  • 错误:找不到驱动程序 - 将 PDO 与 MS Access 数据库结合使用

    背景 我有一个完全可用的 Microsoft Access DB 我创建了一个数据库连接类和一个包含该类并触发简单 SQL 代码的简单页面 我知道代码是正确的 因为几周前它运行良好 然而 从那时到现在 我安装了 PHP MySQL 设置了
  • Python 导入错误 - 运行单元测试

    为什么项目中的模块出现导入错误 所有包都在项目下 它们都有 init py 并且其他脚本不会给出相同的错误 Python版本是3 6 代码是在Unix环境下编写的 这是我收到的导入错误 我正在尝试在这里进行测试 Ran 1 test in
  • 将对象列表传递给 SQL Server 存储过程并使用 asp.net core 插入记录

    我正在开发 ASP NET 应用程序 我正在使用 ado net 访问 SQL Server 数据库并执行 CRUD 我想一次性插入多条记录 为此 我在数据库中添加了一个自定义类型和一个存储过程 如下所示 CREATE TYPE dbo U
  • 反应式香蕉:触发包含行为的最新值的事件

    假设我有一个活动trigger当被解雇时我想做两件事 首先 我希望它更新一些的值behavior 其次 如果满足其他条件 我希望它触发另一个事件send off与updated行为的价值 以代码形式表达 假设我有 trigger Event
  • 视图之间的事件处理

    好的 我有一个像这张照片中的布局 屏幕上部的表格由以下内容组成 消息列表视图 define backbone collections messages views message function Backbone MessageColle
  • C# 捕获堆栈溢出异常

    我对引发堆栈溢出异常的方法进行了递归调用 第一个调用被 try catch 块包围 但未捕获异常 堆栈溢出异常是否有特殊的行为方式 我可以正确捕获 处理异常吗 不确定是否相关 但附加信息 异常不会在主线程中抛出 代码抛出异常的对象是由 As
  • 使用反转的 FlatList 时可以从顶部渲染吗?

    export default class App extends React Component render return
  • StartForeground 错误通知错误

    我正在尝试使用 while 循环来每秒更新一次通知 然而 在 2 3 3 及以下版本中 它会因以下 logcat 错误而崩溃 08 14 07 30 17 394 E AndroidRuntime 501 FATAL EXCEPTION m
  • 如何让IconTabBar中的文字完整显示?

    我在用图标标签栏 https ui5 sap com entity sap m IconTabBar在我的应用程序中 文本 标题为选项卡 未完全显示 一半的文字被删掉了
  • Matplotlib rcParams 无法识别“Times New Roman”(mac High Sierra)

    我正在尝试将 matplotlib 图的字体设置为 Times New Roman 我努力了 import matplotlib pyplot as plt plt rcParams font family Times New Roman
  • 是否可以在 ProxyPass/ProxyPassReverse 中使用相对路径?

    例如httpd conf中有以下配置 ProxyPass app http somehost someport App 1 ProxyPassReverse app http somehost someport App 1 现在我应该使用绝
  • 在 Laravel 5.3 中调用 SEOStats 实例时未找到“SEOstats\SEOstats”类

    我正在尝试在 laravel 中使用 SEOstats php 包 我使用 Composer 安装了它 然后在我的控制器中我使用了它 如下所示 use SEOstats Services as SEOstats class Reportag
  • 签入代码而不在 Heroku 上部署

    我已经在 Heroku 上成功运行了一个应用程序 但现在想与合作者合作 有没有一种方法可以签入 并拉取 代码而无需实时部署 现在 git Push 已部署以对实时站点进行编码 创建一个新分支并使用它 git checkout b BRANC
  • 二值图像的简单多斑点检测?

    如果存在给定的图像二维数组 其中阈值已经完成并且现在是二进制信息 有没有什么特殊的方法来处理这个图像 以便我在图像上获得多个斑点的坐标 我无法使用 openCV 因为这个过程需要在 C 语言的自定义模拟器上同时运行 10 多个模拟机器人 我
  • 使用 local-name() 获取 XSLT 中的第一个子节点

    假设我们有这个简单的 xml
  • SQL Server 中的自定义聚合函数(concat)

    问题 我想编写一个自定义聚合函数 用于连接分组依据上的字符串 这样我就可以做一个 SELECT SUM FIELD1 as f1 MYCONCAT FIELD2 as f2 FROM TABLE XY GROUP BY FIELD1 FIE
  • 使用 Subclipse 1.6.5 时出现未知图标

    我在 Eclipse IDE 中使用 SVN 插件 Subclipse 我最近注意到我的一个目录被标记为下面所示的图标 在查看了 Subclipse 标签装饰器后 我没有看到这个 有谁知道它代表什么吗 这意味着您有版本化的 SVN 属性修改
  • 如何在数据库中存储具有动态数量属性的数据

    我有许多不同的对象 它们具有不同数量的属性 到目前为止 我已将数据保存在 XML 文件中 这可以轻松地允许不断变化的属性数量 但我正在尝试将其移至数据库 您存储这些数据的首选方式是什么 到目前为止我已经确定的一些策略 在对象的表中有一个名为
  • 为什么 (a | b ) 等于 a - (a & b) + b?

    我正在寻找一种使用 Oracle 数据库执行 BITOR 的方法 并遇到了一个仅使用 BITAND 的建议 将 BITOR a b 替换为 a b BITAND a b 我手动测试了几次 并验证它似乎适用于我能想到的所有二进制数 但我无法快