sql server 2005 T-SQL ^(位异或)(Transact-SQL)
2007-12-20 13:19
651 查看
对两个整数值执行“位异或”运算。
Transact-SQL 语法约定
语法
参数
expression
是整数数据类型类别的任一数据类型、bit、binary 或 varbinary 数据类型的任何有效表达式。expression 被视为用于进行位运算的二进制数。
结果类型
如果输入值为 int,则为 int。
如果输入值为 smallint,则为 smallint。
如果输入值为 tinyint,则为 tinyint。
备注
通过从两个表达式中取对应的位,^ 位运算符对两个表达式执行按位逻辑异或运算。如果在输入表达式的正在被解析的对应位中,任意一位(但不是两个位)的值为 1,则结果中该位的值被设置为 1;如果相对应的两个位的值都为 0 或者都为 1,那么结果中该位的值被清除为 0。
如果左侧和右侧的表达式具有不同的整数数据类型(例如,左侧的 expression 的数据类型为 smallint,右侧的 expression 的数据类型为 int),则会将较小数据类型的参数转换为较大数据类型。在这种情况下,smallint expression 被转换为 int。
示例
以下示例创建一个表,其中使用 int 数据类型存储原始值,并将两个值插入一行。
复制代码
下面的查询对 a_int_value 和 b_int_value 列执行位异或运算。
复制代码
下面是结果集:
复制代码
170(a_int_value 或 A)的二进制表示形式是 0000 0000 1010 1010。75(b_int_value 或 B)的二进制表示形式是 0000 0000 0100 1011。在这两个值之间执行位异或运算所产生的二进制结果是 0000 0000 1110 0001,即十进制数 225。
复制代码
Transact-SQL 语法约定
语法
expression ^ expression
参数
expression
是整数数据类型类别的任一数据类型、bit、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 tempdb; 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 列执行位异或运算。
复制代码
USE tempdb; 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。在这两个值之间执行位异或运算所产生的二进制结果是 0000 0000 1110 0001,即十进制数 225。
复制代码
(A ^ B) 0000 0000 1010 1010 0000 0000 0100 1011 -------------------
相关文章推荐
- SQL Server 2005 Beta 2 Transact-SQL 增强功能
- SQL Server 2005 Beta 2 Transact-SQL 增强功能
- sql server 2005 T-SQL 参考 -(减)(Transact-SQL)
- sql server 2005 T-SQL ~(位非)(Transact-SQL)
- sql server 2005 T-SQL $PARTITION (Transact-SQL)
- sql server 2005 T-SQL @@IDENTITY (Transact-SQL)
- sql server 2005 T-SQL @@OPTIONS (Transact-SQL)
- sql server 2005 T-SQL @@SERVERNAME (Transact-SQL)
- sql server 2005 T-SQL @@TRANCOUNT (Transact-SQL)
- sql server 2005 T-SQL ALTER FUNCTION (Transact-SQL)
- sql server 2005 T-SQL ALTER QUEUE (Transact-SQL)
- sql server 2005 T-SQL ALTER TABLE (Transact-SQL)
- sql server 2005 T-SQL ASCII (Transact-SQL)
- sql server 2005 T-SQL BEGIN DIALOG CONVERSATION (Transact-SQL)
- sql server 2005 T-SQL CASE (Transact-SQL)
- sql server 2005 T-SQL @@FETCH_STATUS (Transact-SQL)
- sql server 2005 T-SQL @@OPTIONS (Transact-SQL)
- sql server 2005 T-SQL @@ROWCOUNT (Transact-SQL)
- sql server 2005 T-SQL @@VERSION (Transact-SQL)
- sql server 2005 T-SQL CKUP MASTER KEY (Transact-SQL)