mssql sqlserver 位运算符简介及按位运算


摘要:
下文对位运算符简介及位运算符运算简介及位运算符各数值类型的对应关系


位运算符是在两个表达式之间使用位运算符进行相关运算,这两个表达式可以是
binary、bit、int、smallint、tinyint等数值型。

一、位运算符简介

位运算符

备注
&(位与)

两个表达式按照与操作进行运算
|(位或)

两个表达式按照或操作进行运算
^(位异或)

两个表达式按照异或操作进行运算
&=

将左表达式和右表达式进行位与操作,并将结果赋值给左表达式–适用于sqlserver 2008
^=

将左表达式和右表达式进行位或操作,并将结果赋值给左表达式–适用于sqlserver 2008
|=

将左表达式和右表达式进行位位异或操作,并将结果赋值给左表达式–适用于sqlserver 2008

位运算符所涉及的表达式可以为整数或二进制数据类型(image类型除外),两个二进制类型不能同时存在与左右表达式中,
左右表达式的数据类型如下所示:

左表达式类型

右表达式类型
binary

int、smallint tinyint
bit

int smallint tintint bit
int

int smallint tintint binary varbinary
smallint

int smallint tintint binary varbinary
tinyint

int smallint tintint binary varbinary
varbinary

int smallint tintint

sql位运算结果如下所示:

左表达式

右表达式

&(与计算)

|(或运算)

^异或运算
0

0

0

0

0
0

1

0

1

1
1

0

0

1

1
1

1

1

1

0