1

我迷上了我正在创建的一种名为 VMAC 的新安全范例。可变矩阵访问控制。我想对位串做逻辑暗示。只是想避免 echoeureka (重新发明轮子)。

  1. 在我重新发明轮子之前,是否有一个使用 AND 和 OR 和 NOT 或其他基本 SQL 二元运算符来模拟 ⇒ (逻辑暗示)的捷径?

  2. XNOR 允许我将 ⇒ 仿真减少到四个操作:NOT、XOR、OR 和 AND。但它并没有被广泛使用。任何已知的 XNOR 快捷方式?我正在考虑类似操作数的 AND 操作加上我头顶上的 NOTted 操作数。

  3. 关于在 64 位平台上实现按位数据结构所实现的效率,或对使用并发线程在较大数据对象的字大小段上运行的多线程应用程序的速度有何评论?

(对不起,我不是计算机科学家)

4

4 回答 4

2

如果 A 那么 B 在逻辑上等价于 (不是 A)或 B

于 2008-12-17T18:09:35.230 回答
1

关于通过 0n 64 位平台实现按位数据结构实现的效率的任何评论 (3)?使用并发线程在较大数据对象的字大小段上运行的多线程应用程序的速度?

我个人没有多想,但Raymond Chen有一些意见。

在考虑是否应将字段更改为位字段时,这些只是需要考虑的几件事。当然,位域可以节省数据内存,但您必须在代码大小、可调试性和减少多线程方面的成本之间取得平衡。如果你的类只被实例化几次(我认为“几次”不到几千次),那么这些成本很可能超过节省的成本。

于 2008-12-17T19:05:38.737 回答
1

如果您正在操作一个位字符串,那么

x -> y 

可以用 C/C++(或 SQL)表示为:

~x | y

就速度而言,单个机器字上的位运算符非常快,因为它们是在单个算术 CPU 指令中实现的。与实际检索数据的工作相比,进行数学运算的性能影响几乎可以忽略不计。

于 2008-12-17T18:13:57.640 回答
0

的定义XNOR是 A*B + !A*!B

因此在 SQL 中可以这样实现:

DECLARE @A AS BIT;
DECLARE @B AS BIT;

(@A & @B) | (~@A & ~@B)

可以在这里找到另一种表示法:http: //michaelmairegger.wordpress.com/2011/10/14/sql-nand-xnor/

于 2012-08-24T18:47:42.777 回答