符数转换

王朝百科·作者佚名  2012-04-23
窄屏简体版  字體: |||超大  

SQL语法在 Transact-SQL 语句中,将某个给定的整型值转换为二进制表达式,对其执行按位逻辑非运算。

语法expression

参数expression

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

结果类型如果输入值为 int,则返回 int;如果输入值为 smallint,则返回 smallint;如果输入值为 tinyint,则返回 tinyint;或者如果输入值为 bit,则返回 bit。

注释通过从两个表达式取对应的位,位运算符 ~ 对 expression 执行按位逻辑非运算。如果 expression 中某个位(正在被解析的当前位)的值为 0,则结果中该位的值被设置为 1;否则,结果中该位的值将被清除为 0位运算符 ~ 只可以用在整数类型分类的列上。

示例下面的示例创建一个具有 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 tinyint NOT NULL,

b_int_value tinyint NOT NULL

)

GO

INSERT bitwise VALUES (170, 75)

GO

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

USE MASTER

GO

SELECT ~ a_int_value, ~ b_int_value

FROM bitwise

下面是结果集:

--- ---

85 180

(1 row(s) affected)

170(a_int_value 或 A,如下所示)的二进制表示为 0000 0000 1010 1010。在该值上执行按位 NOT 运算所产生的二进制结果是 0000 0000 0101 0101,即十进制数 85。

(~A)

0000 0000 1010 1010

-------------------

0000 0000 0101 0101

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航