• 相关软件
    >^(按位互斥 OR) 创建者:webmaster 更新时间:2006-02-16 15:51

    在 Transact-SQL 语句中,将两个给定的整型值转换为二进制表达式,对其执行按位互斥 OR 运算。



    语法


    expression ^ expression



    参数


    expression



    是任何有效的 Microsoft® SQL Server™ 表达式(表达式必须由整数数据类型分类中的任何数据类型组成,或者由 binary varbinary 数据类型组成)。expression 是一个经过处理并转换为二进制数字以便进行位运算的整数。



    说明  在位运算中,只有一个 expression 可以是 binary varbinary 数据类型。



    结果类型


    如果输入值为 int,则返回 int;如果输入值为 smallint,则返回 smallint;或者如果输入值为 tinyint,则返回 tinyint



    注释


    通过从两个表达式取对应的位,位运算符 ^ 在两个表达式之间执行按位逻辑异或运算。如果在输入表达式的当前正在被解析的位中,某个位(但不是两个位)的值为 1,则结果中位的值被设置为 1;如果两个位的值都为 0 或者都为1,那么结果中该位的值被清除为 0。



    位运算符 ^ 只可以用在具有整型数据类型分类的列上。



    如果左右表达式的整型数据类型不同(例如,左边 expression 的数据类型是 smallint,右边 expression 的数据类型是 int),那么较小的数据类型的参数将转换为较大的数据类型。在该示例中,数据类型为 smallint expression 被转换为 int 数据类型。



    示例


    下面的示例创建一个具有 int 数据类型的表以显示原始的值,并将该表放入一行中。



    USE master
    GO
    IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES
        WHERE TABLE_NAME = 'bitwise')
      DROP TABLE bitwise
    GO
    CREATE TABLE bitwise
    (
    a_int_value int NOT NULL,
    b_int_value int NOT NULL
    )
    GO
    INSERT bitwise VALUES (170, 75)
    GO


    下面的查询在 a_int_value 列和 b_int_value 列上执行按位互斥 OR 运算。



    USE MASTER
    GO
    SELECT a_int_value ^ b_int_value
    FROM bitwise
    GO


    下面是结果集:



    ----------- 
    225      

    (1 row(s) affected)


    170(a_int_value 或 A,如下所示)的二进制表示为 0000 0000 1010 1010。75(b_int_value 或 B,如下所示)的二进制表示为 0000 0000 0100 1011。在这两个值之间执行按位互斥 OR 运算所产生的二进制结果是 0000 0000 1110 0001,即十进制数 225。



    (A ^ B)   
          0000 0000 1010 1010
          0000 0000 0100 1011
          -------------------
          0000 0000 1110 0001
    相关文章
    本页查看次数: